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

推荐订阅源

博客园_首页
博客园 - Franky
大猫的无限游戏
大猫的无限游戏
博客园 - 三生石上(FineUI控件)
量子位
博客园 - 聂微东
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
S
SegmentFault 最新的问题
Apple Machine Learning Research
Apple Machine Learning Research
爱范儿
爱范儿
V
Visual Studio Blog
雷峰网
雷峰网
T
Tailwind CSS Blog
宝玉的分享
宝玉的分享
Blog — PlanetScale
Blog — PlanetScale
有赞技术团队
有赞技术团队
博客园 - 叶小钗
Microsoft Azure Blog
Microsoft Azure Blog
T
The Blog of Author Tim Ferriss
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
小众软件
小众软件
阮一峰的网络日志
阮一峰的网络日志
Y
Y Combinator Blog

博客园 - 浪剑

[转]我省多元化军民融合金融创新服务体系正加快形成 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
    }
;