亿思维FTP上传下载控件 - 接口说明 示例程序 - 在线试用
一、属性:
Busy(是否正忙)
Connected(是否已连接成功)
ErrorInfo(发生错误时的错误信息)
ErrorNumber(发生错误时的错误号码)
FileSize(正在传输的文件大小)
FileTypeAllow(允许的文件类型)
FileTypeForbid(禁止的文件类型)
FtpState(FTP状态代码)
KeepConnSecond(检测连接秒数)
LeftTime(当前传输的剩余时间)
LocalPath(客户端文件路径)
MaxChunkSize(每次传输数据块的最大值)
MaxSize(允许传输文件的最大值)
MessageInfo(FTP服务器返回的消息)
OverWrite(是否续传)
PassiveMode(是否使用被动模式)
PassWord(登录服务器的密码)
Percent(当前传输进度)
QueueIndex(队列序号)
QueueTotal(队列中的文件总数)
RaiseErrorEvent(是否触发OnError事件)
ReDoTimes(连接中断后重新传输的次数)
RemotePath(服务器端文件路径)
RemotePort(服务器端口)
RenameRule(重命名文件规则)
ReplaceSetting("文件替换设置")
ServerName(服务器地址)
Speed(传输速度)
TimeOut(超时时间)
TransferSize(已传输文件大小)
UserName(登录服务器用户名)
Version(控件版本)



二、方法:
Abort(取消所有文件上传)
AbortCurrent(取消当前文件上传)
About(显示关于我们对话框)
ChangeTransferList(移除传输队列中的文件)
CloseConnection(关闭连接)
Connect(连接到服务器)
CreateDirectory(在服务器创建目录)
DeleteFile(删除服务器上的文件)
DownLoad(下载文件)
ExeFtpCmd(执行FTP命令)
ExistDirectory(检测FTP目录是否存在)
ExistFile(检测FTP文件是否存在)
FormatFileSize(格式化文件大小)
FormatTime(格式化时间)
GetCurrentDirectory(获取服务器工作目录)
GetFileExtendName(获取文件扩展名)
GetFileName(获取指定路径的文件名称)
GetFtpDirectoryInfo(获取服务器端目录信息)
GetFtpFileInfo(获取服务器端文件信息)
GetFtpFileSize(获取服务器端文件大小)
GetLocalFileDate(获取客户端文件日期 )
GetLocalFileSize(获取客户端文件大小)
GetLocalFolderFileCount(获取客户端目录文件总数)
GetLocalFolderSize(获取客户端目录文件大小)
GetParentDirectory(获取服务器端父目录)
GetParentFolderPath(获取指定路径的父目录)
LocalFileExists(检测客户端文件是否存在)
LocalFolderExists(检测客户端目录是否存在)
RemoveDirectory(删除服务器端目录)
RenameFile(重命名服务器端文件或目录)
SetCurrentDirectory(设置服务器端当前目录)
ShowBrowseFolderDialog(显示选择文件夹对话框)
ShowOpenFileDialog(显示选择文件对话框)
ShowSaveFileDialog(显示保存文件对话框)
UpLoad(上传文件)
三、事件:
OnError(发生错误时触发)
OnServerMessage(服务器端返回消息时触发)
OnStateChange(FTP状态改变时触发)
OnTransfer(传输文件过程中触发)
四.示例:
连接
上传单个文件
上传单个目录
上传多个文件或目录
上传通配符指定的文件
下载单个文件
下载单个目录
下载多个文件或目录
下载通配符指定的文件
设置控件的提示文字信息
五.下载HTTP文件:
下载单个文件
下载多个文件
一、属性:
Busy:
FTP是否正忙。是返回True;
Connected:
是否已连接成功,是返回True,否返回False;
ErrorInfo:
发生错误时的错误信息;
ErrorNumber:
发生错误时的错误号码;点击查看错误代码列表
FileSize:
正在传输的文件的大小;
FileTypeAllow:
允许上传的文件类型;各个文件类型间以";"分隔;如:"txt;doc"
FileTypeForbid:
禁止上传的文件类型;各个文件类型间以";"分隔;如:"asp;aspx";
如果某文件类型即在FileTypeAllow中也在FileTypeForbid中,则以FileTypeForbid为准,也就是判断为禁示的文件类型;

FtpState:
FTP状态代码,在事件OnStateChange中获取,主要有如下值:

ftpFreeState:空闲
ftpConnecting:正在连接
ftpConnected:已连接
ftpAuthentication:正在验证账号
ftpUserLoggedIn:用户已登录
ftpUploadInProgress:正在上传
ftpUploadCompleted:已完成上传
ftpDownloadInProgress:正在下载
ftpDownloadCompleted:已完成下载
ftpRetrievingDirectoryInfo:正在获取目录信息
ftpDirectoryInfoRetrieved:已获取目录信息
ftpQuiting:正在退出
ftpClosed:已关闭
KeepConnSecond:
每隔多少秒检测与服务器的连接;单位:秒,默认30秒
LeftTime:
当前文件传输的剩余时间;单位:秒
LocalPath:
调用Upload方法时为待上传文件的路径;
调用DownLoad方法时为下载文件的保存路径;
MaxChunkSize:
每次传输数据块的最大值,单位KB;默认为1MB;
MaxSize:
在程序中设置可以传输文件的最大值;(单位:M)
MessageInfo:
服务器端返回的消息,在事件OnServerMessage中获取;

OverWrite:
是否覆盖;如果不覆盖则断点续传;
1:程序中没有设置该参数,则显示"文件替换对话框";

2.设置为True,所有文件都替换;
3.设置为False,所有文件都续传;

您也可以通过设置ReplaceSetting的值,操作上面的窗口;

PassiveMode:
是否使用被动模式传送文件,默认为True;
PassWord:
登录FTP服务器的密码;
Percent:
文件传输已完成的百分比;
QueueIndex:
当前传送文件在队列中的序号;
QueueTotal:
传送队列中的文件总数;
RaiseErrorEvent:
是否触发OnError事件,默认为false;
ReDoTimes:
上传或下载发生错误时自动重新传输的次数;
比如参数设置为5,如果连接中断则最多尝试5次重新连接,如果连续尝试5次仍不能连接,则提示错误;
RemotePath:
服务器端文件路径;
调用Upload时,该参数为上传后文件在服务器端的保存路径;
调用DownLoad时,该参数为待下载的服务器端文件路径;
RemotePort:
FTP服务器端口,默认为21;
RenameRule:
重命名文件的规则,默认为:"{oldname}1",表示在原文件名的基础上加1;如"test.htm"重命名后为"test1.htm";

ReplaceSetting:
控制"文件替换设置"窗口响应的按钮,ReplaceSetting的值为:

0:显示"文件替换对话框";

1:覆盖;
2:续传;
3:跳过;
4:重命名;(重命名规则由属性"RenameRule"指定)

ServerName:
FTP服务器名称;
Speed:
当前传输的速度,单位:bytes/s;
可用"FormatFileSize(FtpLibrary1.Speed) & "/s"转换为:kb/s或mb/s
Text:
控件的提示文字信息;可以设置该属性以改变控件显示的提示信息;
TimeOut:
超时时间间隔,默认为30秒;
UserName:
登录FTP服务器的用户名,如果为空则相当于匿名;
Version:
显示控件的版本
二、方法:
Abort():
取消传输队列中所有文件的传输操作;
AbortCurrent():
取消传输队列中当前正在传输的文件的传输操作;
About():
显示控件的版本等相关说明信息
ChangeTransferList(FilePath, Delete)
把某个文件从传输队列中移除;
FilePath:需要从队列中移除的文件路径;
Delete(可选):是否移除,为True则移除,为False则把已移除的文件添加回队列;默认为True;
CloseConnection():
关闭连接;
Connect():
连接FTP服务器;成功返回True,失败返回False;
CreateDirectory(DirectoryPath,Recursive):
在FTP服务器上创建目录;成功返回True,失败返回False;
DirectoryPath:待创建的目录路径;
Recursive(可选): 是否循环创建,默认为True;
DeleteFile(FilePath):
删除FTP服务器上的文件;成功返回True,失败返回False;
FilePath:需要删除的文件路径;
DownLoad():
'功能:下载单个文件、多个文件、整个目录或指定目录中按通配符(只支持*和?)指定的文件;成功返回True,失败返回False;
'说明:
1:下载一个文件:给RemotePath参数传要下载的文件路径;
2:下载整个目录:给RemotePath参数传要下载的目录路径,路径最后一个字符要为"\";
3:下载多个文件/目录:RemotePath参数表示的文件路径间以"|"分隔, 每个目录路径最后一个字符要为"\";此时LocalPath可对应为多个保存路径,也可以只写一个保存所有文件的路径, 如果只有一个路径所有文件以原文件名保存到该路径下;
4:下载指定目录中按通配符指定的文件:给RemotePath参数传带通配符的路径;如:easewe\*.txt

ExeFtpCmd(Cmd , Arguments):
执行指定的FTP命令
Cmd:命令名称;
Arguments:命令参数;

ExistDirectory(DirectoryName):
是否存在指定的FTP目录
DirectoryName:需要检测的目录路径;

ExistFile(FileName):
是否存在指定的FTP文件.(只适用于V4.5.0.5或之后的版本)
FileName:需要检测的文件路径;

FormatFileSize(FileSize):
标准化文件大小,如果大于1M返回以M为单位的文件大小字符串,大于1KB则以KB为单位,否则以Bytes为单位;
FileSize:以字节为单位的文件大小;
FormatTime(Seconds):
格式化时间,把剩余时间格式为hh:mm:ss的形式;.
Seconds:以秒为单位的时间值; 比如FormatTime(290)将返回"04:50"
GetCurrentDirectory():
获取FTP服务器当前的工作目录;
GetFileExtendName(FilePath):
获取某路径中文件的扩展名
FilePath:文件路径,比如: GetFileExtendName("d:\test\file.txt")将返回txt;
GetFileName(FilePath):
获取某路径的文件名
FilePath:文件路径,比如: GetFileExtendName("d:\test\file.txt")将返回file.txt;
GetFtpDirectoryInfo(DirectoryPath):
获取FTP服务器目录的文件信息(如文件大小,日期),返回CftpFiles数组;
FileName:目录路径;
GetFtpFileInfo(FilePath):
获取FTP服务器上的文件信息(如文件大小,日期),返回CFtpFile对象;
FilePath:文件路径;
GetFtpFileSize(FilePath):
获取FTP服务器上文件的大小;返回-1表示没有该文件,返回-2表示发生错误;
FileName:文件路径;
GetLocalFileDate(FilePath):
获取本地文件的日期;
FilePath:文件路径;
GetLocalFileSize(FilePath):
获取本地文件的大小;
FilePath:文件路径;
GetLocalFolderFileCount(FolderPath):
获取客户端指定路径下所有文件的文件总数;
FolderPath:目录路径;
GetLocalFolderSize(FolderPath):
获取客户端指定路径下所有文件的文件大小;
FolderPath:目录路径;
GetParentDirectory():
获取FTP服务器当前工作目录的父目录;
GetParentFolderPath(FolderPath):
获取指定目录的父目录;
FolderPath:目录路径
LocalFileExists(FilePath):
判断本地文件是否存在,存在返回True;
FilePath:本地文件路径;
LocalFolderExists(FolderPath):
判断本地文件夹是否存在,存在返回True;
FolderPath:本地目录路径;
RemoveDirectory(DirectoryPath):
删除FTP服务器上的目录;成功返回True,失败返回False;
DirectoryPath:目录路径;
RenameFile(OldFileName,NewFileName):
重命名FTP服务器上的文件(夹);成功返回True,失败返回False;
OldFileName:原文件名;
NewFileName:新文件名;
SetCurrentDirectory(DirectoryPath):
设置FTP服务器上的当前目录;成功返回True,失败返回False;
DirectoryPath:目录路径;
ShowBrowseFolderDialog(DefaultFolder):
显示选择文件夹对话框
DefaultFolder(可选):默认显示的路径;
ShowOpenFileDialog(FileFilter,MultiSelect):
显示选择文件对话框;
FileFilter(可选):文件类型过滤:以";"号分隔各个文件类型;如:*.txt;*.doc;*.exe
MultiSelect(可选):是否可选择多个文件,默认为True;
ShowSaveFileDialog(FileName):
显示保存文件对话框;
FileName(可选):保存时默认显示的文件名;
UpLoad():
'功能:上传单个文件、多个文件、整个目录或指定目录中按通配符(只支持*和?)指定的文件;成功返回True,失败返回False;
'说明:
1:上传一个文件:直接给LocalPath参数传要上传的文件路径;
2:上传整个目录:直接给LocalPath参数传要上传的目录路径,路径最后一个字符要为"\";
3:上传多个文件/目录:LocalPath参数表示的文件路径间以"|"分隔, 每个目录路径最后一个字符要为"\";此时RemotePath可对应为多个保存路径,也可以只写一个保存所有文件的路径,如果只有一个路径所有文件以原文件名保存到该路径下;
4:上传指定目录中按通配符指定的文件:给LocalPath参数传带通配符的路径;如:c:\easewe\*.txt;
三、事件:
OnError:
在RaiseErrorEvent=True的情况下,所有函数发生错误时都触发该事件;

Private Sub FtpLibrary1_OnError()
Debug.Print FtpLibrary1.ErrorInfo & "(" & FtpLibrary1.ErrorNumber & ")"
End Sub
OnServerMessage:
服务器端返回消息时触发该事件;

Private Sub FtpLibrary1_OnServerMessage()
Debug.Print FtpLibrary1.MessageInfo
End Sub
OnStateChange:
FTP状态发生改变时触发该事件:

Private Sub FtpLibrary1_OnStateChange()
If FtpLibrary1.FtpState = FtpStates.ftpUploadCompleted Then
Debug.Print "State: Upload Completed"
ElseIf FtpLibrary1.FtpState = FtpStates.ftpDownloadCompleted Then
Debug.Print "State: Download Completed"
End If
End Sub
OnTransfer:
传输过程中触发该事件,该事件用于显示进度,传输速度,和剩余时间等数据:

Private Sub FtpLibrary1_OnTransfer()
Debug.Print FtpLibrary1.Percent & "%(" & FtpLibrary1.FileSize & "/" & FtpLibrary1.TransferSize & ")"
Debug.Print FtpLibrary1.FormatFileSize(FtpLibrary1.Speed) & "/s"
Debug.Print FtpLibrary1.FormatTime(FtpLibrary1.LeftTime)
End Sub
四.示例:
连接:
FtpLibrary1.ServerName ="www.easewe.com"
FtpLibrary1.UserName ="easewe"
FtpLibrary1.PassWord ="easewe"
FtpLibrary1.RemotePort ="21"'(不设置该参数,默认为21)
If FtpLibrary1.Connect Then
'连接成功
Else
'连接失败(此时可以用FtpLibrary1.ErrorInfo 和 FtpLibrary1.ErrorNumber 获取错误的描述和错误号)
End If
上传单个文件:
FtpLibrary1.LocalPath ="c:\easewe.txt"
FtpLibrary1.RemotePath ="easewe.txt"
If FtpLibrary1.UpLoad Then
'成功
Else
'失败(此时可以用FtpLibrary1.ErrorInfo 和 FtpLibrary1.ErrorNumber 获取错误的描述和错误号)
End If
上传单个目录'路径的最后一个字符必须为'\'
FtpLibrary1.LocalPath ="c:\easewe\"
FtpLibrary1.RemotePath ="easewe\"
If FtpLibrary1.UpLoad Then
'成功
Else
'失败
End If
上传多个文件或目录:'每个路径使用'|'分隔
FtpLibrary1.LocalPath ="c:\easewe.txt|c:\easewe1.txt|c:\easewe\"
FtpLibrary1.RemotePath ="easewe\"
If FtpLibrary1.UpLoad Then
'成功
Else
'失败
End If
上传通配符指定的文件:

FtpLibrary1.LocalPath ="c:\*.txt"
FtpLibrary1.RemotePath ="easewe\"
If FtpLibrary1.UpLoad Then
'成功
Else
'失败
End If
下载单个文件:
FtpLibrary1.RemotePath ="easewe.txt"
FtpLibrary1.LocalPath ="c:\easewe.txt"
If FtpLibrary1.DownLoad Then
'成功
Else
'失败(此时可以用FtpLibrary1.ErrorInfo 和 FtpLibrary1.ErrorNumber 获取错误的描述和错误号)
End If
下载单个目录:'路径的最后一个字符必须为'\'
FtpLibrary1.RemotePath ="easewe\"
FtpLibrary1.LocalPath ="c:\easewe\"
If FtpLibrary1.DownLoad Then
'成功
Else
'失败
End If
下载多个文件或目录:'每个路径使用'|'分隔
FtpLibrary1.RemotePath ="easewe.txt|easewe1.txt|easewe\"
FtpLibrary1.LocalPath ="c:\easewe.txt"
If FtpLibrary1.DownLoad Then
'成功
Else
'失败
End If
下载通配符指定的文件
FtpLibrary1.RemotePath ="*.txt"
FtpLibrary1.LocalPath ="c:\easewe\"
If FtpLibrary1.DownLoad Then
'成功
Else
'失败
End If
设置控件的提示文字信息:
1.从控件的FtpLibrary1.Text属性获取控件所使用的文字信息;
2.把获取后的文字信息翻译为其它语言;
3.把翻译后的文字再赋给Text属性,使控件显示其它语言的文字信息;
五.下载HTTP文件:
下载单个文件:
FtpLibrary1.RemotePath ="http://www.easewe.com/easewe.txt"
FtpLibrary1.LocalPath ="c:\easewe.txt"
If FtpLibrary1.DownloadHttpFile Then
'成功
Else
'失败
End If
下载多个文件:'每个路径使用'|'分隔
FtpLibrary1.RemotePath ="http://www.easewe.com/easewe.txt|http://www.easewe.com/easewe1.txt"
FtpLibrary1.LocalPath ="c:\"
If FtpLibrary1.DownloadHttpFile Then
'成功
Else
'失败
End If