惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
G
Google Developers Blog
小众软件
小众软件
V
V2EX
月光博客
月光博客
腾讯CDC
aimingoo的专栏
aimingoo的专栏
J
Java Code Geeks
Y
Y Combinator Blog
人人都是产品经理
人人都是产品经理
B
Blog RSS Feed
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Microsoft Azure Blog
Microsoft Azure Blog
博客园 - 【当耐特】
D
Docker
M
MIT News - Artificial intelligence
Google DeepMind News
Google DeepMind News
N
Netflix TechBlog - Medium
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
I
InfoQ
MongoDB | Blog
MongoDB | Blog
Apple Machine Learning Research
Apple Machine Learning Research
Jina AI
Jina AI

博客园 - 浪剑

[转]我省多元化军民融合金融创新服务体系正加快形成 C#中通过wmi获取硬件的信息 C#中通过WMI的Win32_DiskDrive对象获取磁盘驱动器信息简介 Windows服务中如何播放声音 一个根据根据输入内容自动匹配的下来列表框,且支持拼音字母 一个动态添加DataGridView列的函数 win7下如何配置ODBC数据源 串口小票打印机调试命令 关于生成GUID [导入]CSS基本布局16例 [导入]网易娱乐频道也在用风讯CMS [导入]ASP.NET26个常用性能优化方法 [导入]如何构造一个C#语言的爬虫蜘蛛程序 javascript控制cookies及在跳出本页给出提示,是否放弃操作!! - 浪剑 - 博客园 RunOnBeforeUnload() 在程序里面(服务器端)调用Winrar压缩文件的方法?另寻求一条语句转换的方法。vb.net到C#。 javascript控制图片的百叶窗效果 在ASP.NET中显示进度条 [转]ASP.Net+XML打造留言薄
[转]利用FtpClient类实现文件的上传下载功能
浪剑 · 2009-07-19 · via 博客园 - 浪剑

该代码源自互联网,并经过修改:

解决了中文文件名会出现乱码的情况;

改善了上传不稳定的问题(但没有从根本上解决,目前只知道在接收Socket时有时会收到一半就退出,结果造成接收数据不完整,经常出现在Dir时。尚未仔细研究。)

FtpClient.cs

    /// <summary>
    
/// FtpClient 的摘要说明。
    
/// </summary>

    public class FtpClient : IDisposable
    
{
        
私有变量

        
// 构造方法
        构造方法

        
// 属性
        BlockSize 接收和发送数据的缓冲区大小

        
ServerAddress Ftp 服务器地址

        
ServerPort Ftp 服务器端口

        
RemotePath 当前服务器目录

        
LoginUser 登录用户账号

        
LoginPassword 用户登录密码

        
Connected 是否登录

        
// 接口
        IDisposable 成员

        
// 私有方法
        ReadReply

        
CreateDataSocket 建立进行数据连接的socket

        
CloseSocketConnect 关闭socket连接(用于登录以前)

        
ReadLine 读取Socket返回的所有字符串

        
SendCommand 发送命令并获取应答码和最后一行应答字符串

        
// 公共方法
        Connect 建立连接

        
EnsureConnected 确保已经连接到服务器

        
Close 关闭连接

        
TransferType 获取或设置传输模式

        
Dir 获得文件列表

        
GetFileSize 获取文件大小

        
Delete 删除

        
Rename 重命名文件(如果新文件名与已有文件重名,将覆盖已有文件)

        
Download 下载文件

        
Upload 上传文件

        
MakeDirectory 创建目录

        
RenameDirectory 删除目录

        
ChangeDirectory 改变当前目录
    }

FtpClientException.cs

    /// <summary>
    
/// FtpClientException 的摘要说明。
    
/// </summary>

    [Serializable]
    
public class FtpClientException : Exception
    
{
        
构造方法
    }

}

FtpReply.cs

    /// <summary>
    
/// FtpReply 的摘要说明。
    
/// </summary>

    [Serializable]
    
public class FtpReply
    
{
        
private int _code;
        
private string _message;

        
public FtpReply() : this(0string.Empty)
        
{
        }


        
public FtpReply(int code, string message)
        
{
            
this._code = code;
            
this._message = message;
        }


        
public int Code
        
{
            
get
            
{
                
return this._code;
            }

            
set
            
{
                
this._code = value;
            }

        }


        
public string Message
        
{
            
get
            
{
                
return this._message;
            }

            
set
            
{
                
this._message = value;
            }

        }

    }

FtpTransferType.cs

    /// <summary>
    
/// 传输模式。
    
/// </summary>

    public enum FtpTransferType
    
{
        
/// <summary>
        
/// 二进制模式。
        
/// </summary>

        Binary,
        
/// <summary>
        
/// ASCII 模式。
        
/// </summary>

        ASCII
    }
;