完整的FTP类 功能简介

功能
  • 建立FTP链接
  • 支持代理
  • 多种重载的同步上传文件
  • 多种重载的异步上传文件
  • 多种重载的同步下载文件
  • 多种重载的异步下载文件
  • 上传文件的进度百分比
  • 下载文件的进度白分比
  • 有区分的列出目录或者文件的信息(考虑到MS DOS显示格式和UNIX格式)
  • 目录或文件存在的判断
  • 删除文件
  • 重命名文件、目录
  • 在FTP服务器上面拷贝、移动文件(许多人可能在苦苦寻找这个功能)
  • 建立、删除目录
  • 目录切换操作(很新颖哦 J)

公共构造函数
 
名称说明
clsFTP()初始化clsFtp类的新实例
clsFTP(Uri FtpUri, string strUserName, string strPassword)由FTP地址、FTP登录用户信息、FTP登录用户密码初始化clsFtp类的新实例
clsFTP(Uri FtpUri, string strUserName, string strPassword, WebProxy objProxy)由FTP地址、FTP登录用户信息、FTP登录用户密码、代理服务器对象初始化clsFtp类的新实例
 
公共属性
名称说明
Uri获取或设置FTP服务器地址
DirectoryPath获取当前工作目录
UserName获取或设置FTP登录用户
Password获取或设置FTP登录密码
Proxy获取或设置连接FTP服务器的代理服务
ErrorMsg获取操在返回的错误信息
 
公共事件
名称说明
DownloadProgressChanged异步下载进度发生改变触发的事件
DownloadDataCompleted异步下载文件完成之后触发的事件
UploadProgressChanged异步上传进度发生改变触发的事件
UploadFileCompleted异步上传文件完成之后触发的事件
公共方法
名称说明
DownloadFile(string RemoteFileName, string LocalPath)从FTP服务器下载文件,使用与远程文件同名的文件名来保存文件。 参数说明: RemoteFileName: 远程文件名 LocalPath: 本地路径
DownloadFile(string RemoteFileName, string LocalPath, string LocalFileName)从FTP服务器下载文件,指定本地路径和本地文件名。 参数说明: LocalPath: 本地路径 LocalFilePath: 保存文件的本地路径,后面带有"\" LocalFileName: 保存本地的文件名
DownloadFile(string RemoteFileName)从FTP服务器下载文件,返回文件二进制数据。 参数说明: RemoteFileName: 远程文件名
DownloadFileAsync(string RemoteFileName, string LocalPath, string LocalFileName)从FTP服务器异步下载文件,指定本地路径和本地文件名。 参数说明: RemoteFileName: 远程文件名        LocalPath: 保存文件的本地路径,后面带有"\" LocalFileName: 保存本地的文件名
DownloadFileAsync(string RemoteFileName, string LocalFullPath)从FTP服务器异步下载文件,指定本地完整路径文件名。 参数说明: RemoteFileName: 远程文件名 LocalFullPath: 本地完整路径文件名
UploadFile(string LocalFullPath)上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件名
UploadFile(string LocalFullPath, bool OverWriteRemoteFile)上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件 OverWriteRemoteFile: 是否覆盖远程服务器上面同名的文件
UploadFile(string LocalFullPath, string RemoteFileName)上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件 RemoteFileName: 要在FTP服务器上面保存文件名
UploadFile(string LocalFullPath, string RemoteFileName, bool OverWriteRemoteFile)上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件名 RemoteFileName: 要在FTP服务器上面保存文件名 OverWriteRemoteFile: 是否覆盖远程服务器上面同名的文件
UploadFile(byte[] FileBytes, string RemoteFileName)上传文件到FTP服务器。 参数说明: FileBytes: 上传的二进制数据 RemoteFileName: 要在FTP服务器上面保存文件名
UploadFile(byte[] FileBytes, string RemoteFileName, bool OverWriteRemoteFile)上传文件到FTP服务器。 参数说明: FileBytes: 文件二进制内容 RemoteFileName: 要在FTP服务器上面保存文件名 OverWriteRemoteFile: 是否覆盖远程服务器上面同名的文件
UploadFileAsync(string LocalFullPath)异步上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件名
UploadFileAsync(string LocalFullPath, bool OverWriteRemoteFile)异步上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件 OverWriteRemoteFile: 是否覆盖远程服务器上面同名的文件
UploadFileAsync(string LocalFullPath, string RemoteFileName)异步上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件 RemoteFileName: 要在FTP服务器上面保存文件名
UploadFileAsync(string LocalFullPath, string RemoteFileName, bool OverWriteRemoteFile)异步上传文件到FTP服务器。 参数说明: LocalFullPath: 本地带有完整路径的文件名 RemoteFileName: 要在FTP服务器上面保存文件名 OverWriteRemoteFile: 是否覆盖远程服务器上面同名的文件
UploadFileAsync(byte[] FileBytes, string RemoteFileName)异步上传文件到FTP服务器。 参数说明: FileBytes: 上传的二进制数据 RemoteFileName: 要在FTP服务器上面保存文件名
UploadFileAsync(byte[] FileBytes, string RemoteFileName, bool OverWriteRemoteFile)异步上传文件到FTP服务器。 参数说明: FileBytes: 文件二进制内容 RemoteFileName: 要在FTP服务器上面保存文件名 OverWriteRemoteFile: 是否覆盖远程服务器上面同名的文件
ListFilesAndDirectories()列出FTP服务器上面当前目录的所有文件和目录。
ListFiles()列出FTP服务器上面当前目录的所有文件。
ListDirectories()列出FTP服务器上面当前目录的所有的目录。
DirectoryExist(string RemoteDirectoryName)判断当前目录下指定的子目录是否存在。 参数说明: RemoteDirectoryName: 指定的目录名
FileExist(string RemoteFileName)判断一个远程文件是否存在服务器当前目录下面。 参数说明: RemoteFileName: 远程文件名
DeleteFile(string RemoteFileName)从FTP服务器上面删除一个文件。 参数说明: RemoteFileName: 远程文件名
ReName(string RemoteFileName, string NewFileName)更改一个文件的名称或一个目录的名称。 参数说明: RemoteFileName: 原始文件或目录名称 NewFileName: 新的文件或目录的名称
CopyFileToAnotherDirectory(string RemoteFile, string DirectoryName)把当前目录下面的一个文件拷贝到服务器上面另外的目录中,注意,拷贝文件之后,当前工作目录还是文件原来所在的目录。 参数说明: RemoteFile: 当前目录下的文件名 DirectoryName: 新目录名称。  说明:如果新目录是当前目录的子目录,则直接指定子目录。如: SubDirectory1/SubDirectory2 ;  如果新目录不是当前目录的子目录,则必须从根目录一级一级的指定。如:./NewDirectory/SubDirectory1/SubDirectory2
MoveFileToAnotherDirectory(string RemoteFile, string DirectoryName)把当前目录下面的一个文件移动到服务器上面另外的目录中,注意,移动文件之后,当前工作目录还是文件原来所在的目录。 参数说明: RemoteFile: 当前目录下的文件名 DirectoryName: 新目录名称。  说明:如果新目录是当前目录的子目录,则直接指定子目录。如: SubDirectory1/SubDirectory2 ;  如果新目录不是当前目录的子目录,则必须从根目录一级一级的指定。如:./NewDirectory/SubDirectory1/SubDirectory2
MakeDirectory(string DirectoryName)在FTP服务器上当前工作目录建立一个子目录。 参数说明: DirectoryName: 子目录名称
RemoveDirectory(string DirectoryName)从当前工作目录中删除一个子目录。 参数说明: DirectoryName: 子目录名称
IsValidPathChars(string DirectoryName)判断目录名中字符是否合法。 参数说明: DirectoryName: 目录名称
IsValidFileChars(string FileName)判断文件名中字符是否合法。 参数说明: FileName: 文件名称
GotoDirectory(string DirectoryName)进入一个目录。 参数说明: DirectoryName:  新目录的名字。  说明:如果新目录是当前目录的子目录,则直接指定子目录。如: SubDirectory1/SubDirectory2 ;  如果新目录不是当前目录的子目录,则必须从根目录一级一级的指定。如:./NewDirectory/SubDirectory1/SubDirectory2
EnterOneSubDirectory(string DirectoryName)从当前工作目录进入一个子目录。 参数说明: DirectoryName: 子目录名称
ComeoutDirectory()从当前工作目录往上一级目录。
 
其他说明
序号说明
1支持代理服务器。 可以显式地给Proxy属性赋值;也可以在构造函数中传递Proxy对象。如果代理需要登录用户和密码,则设置Proxy的Credentials属性,例如: Proxy.Credentials = new NetworkCredential(UserName, Password) 如果没有代理,则无需给Proxy属性赋值或者在构造函数中无需传递Proxy参数。
2下载文件和上传文件大小最大受Int32.MaxValue限制,所以最大处理只能是2,147,483,647字节。如果您想处理更大的文件,请自己修改代码中对文件打开和读写操作部分的代码使其适应您的要求。
3只有在异步上传文件或者异步下载文件的时候,才支持进度百分比触发事件和下载(上传)完成事件。
4由于服务器未发送文件大小,因此被动 FTP 文件传输总是将进度百分比显示为零。若要显示进度,可以通过重写 GetWebRequest 虚拟方法来将 FTP 连接更改为活动状态。所以,我们在clsFTP类中另外使用内部类MyWebClient  
5在列出文件和目录的时候,clsFTP类区分出了所获得的响应数据哪些是文件,哪些是目录。同时,考虑到了FTP服务器上面目录样式为MS DOS和UNIX两种表现形式的不同。
6支持在FTP服务器上面不同目录之间移动文件和拷贝文件的功能。移动文件的方法比较巧妙,只是拷贝文件所使用的方法不太理想。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/22392018/viewspace-712404/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/22392018/viewspace-712404/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值