当前位置: 代码迷 >> Web前端 >> 一个打包比较完整的FTP类――clsFTP
  详细解决方案

一个打包比较完整的FTP类――clsFTP

热度:568   发布时间:2012-10-06 17:34:01.0
一个封装比较完整的FTP类――clsFTP

一个封装比较完整的FTP类――clsFTP

前几天,看见园子里面的博友写了一个支持断点续传的FTP类,一时技痒,干脆写了个更完整的clsFtp类。只是我写这个clsFtp不是支持断点续传的目的,而是为了封装FTP几个基本常用的操作接口。

功能<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

ü???????? 建立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

获取操在返回的错误信息

?

?

公共方法

名称

说明

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()

从当前工作目录往上一级目录。

?

?

?

公共事件

名称

说明

DownloadProgressChanged

异步下载进度发生改变触发的事件

DownloadDataCompleted

异步下载文件完成之后触发的事件

UploadProgressChanged

异步上传进度发生改变触发的事件

UploadFileCompleted

异步上传文件完成之后触发的事件

?

?

?

其他说明

序号

说明

1

支持代理服务器。

可以显式地给Proxy属性赋值;也可以在构造函数中传递Proxy对象。如果代理需要登录用户和密码,则设置ProxyCredentials属性,例如:

Pr