FTPClient
FTPClient类提供了一套完整的方法,用于管理FTP服务器上的文件和目录。
属性
示例
Dim
ftp1 As
New FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
= "foxuser"
ftp1.Password
= "138238110"
ftp1.DeleteEnabled =False
'禁用删除文件按钮
ftp1.RenameEnabled =
False
'禁用重命名文件按钮
ftp1.RootDir =
"\photo"
'设置根目录
ftp1.OpenManager()
方法
OpenManager
打开FTP管理器。
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
ftp1.Changedir("\photo")
ftp1.OpenManager()
Download
从FTP上下载文件,语法:
Download(sourceFileName, destinationFileName, ShowUI)
sourceFileName:要下载的文件,含路径
destinationFileName:保存下载文件的文件名和路径。
ShowUI:可选参数,逻辑型,是否显示下载进度,默认为False。
如果下载成功,返回True,否则返回False:
示例
Dim
ftp1 As
new
ftpclient
ftp1.host="196.128.143.28"
ftp1.Account =
"foxuser"
ftp1.password =
"138238110"
If ftp1.Download("\photo\Desert.jpg","c:\data\Desert.jpg")
= True Then
Messagebox.show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
Messagebox.show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
Upload
将文件上传到FTP,语法:
Upload(sourceFileName, destinationFileName, ShowUI)
sourceFileName:要上传的本地文件,含路径
destinationFileName:目标文件,含路径
ShowUI:逻辑型,是否显示上传进度,默认为False。
如果上传成功,返回True,否则返回False
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
If
ftp1.Upload("c:\data\Desert.jpg","\update\Desert.jpg")
= True Then
Messagebox.show("上传完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
Messagebox.show("上传失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
DeleteFile
删除FTP上的文件,语法:
DeleteFle(FileName)
FileName:要删除的文件,含路径
如果删除成功,返回True,否则返回False
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
If
ftp1.DeleteFile("\update\Desert.jpg")
= True Then
Messagebox.show("删除完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
Messagebox.show("删除失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
DeleteDir
删除FTP上的目录,语法:
DeleteDir(DirName,AnyWay)
DirName:要删除的目录名称。
AnyWay:可选参数,如果设为True,将删除目录下的文件及其子目录,如果省略此参数,则只有此目录为空的时候,才能删除。
如果删除成功,返回True,否则返回False
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
If
ftp1.DeleteDir("\data",
True) = True Then
Messagebox.show("删除完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
Messagebox.show("删除失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
GetFileList
用于返回FTP服务器指定目录下的全部文件名,以字符串集合的形式返回,语法:
GetFileList(Path)
Path:可选参数,用于指定目录,如果省略,则返回当前目录下的全部文件名。
示例
例如列出photo目录下的所有文件:
Dim
ftp1
As
New
FtpClient
Dim
fls
As
List(of
String)
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
fls = ftp1.GetFileList("\photo")
For Each
fl
As
String
In
fls
Output.Show(fl)
Next
还可以使用通配符,例如列出photo目录下的所有jpg文件:
Dim
ftp1
As
New
FtpClient
Dim
fls
As
List(of
String)
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
fls = ftp1.GetFileList("\photo\*.jpg")
For Each
fl
As
String
In
fls
Output.Show(fl)
Next
GetDirList
用于返回FTP服务器指定目录下的全部子目录,以字符串集合的形式返回,语法:
GetDirList(Path)
Path:可选参数,用于指定目录,如果省略,则返回当前目录下的全部子目录名。
示例
Dim
ftp1
As
New FtpClient
Dim
dls
As
List(of
String)
ftp1.Host="196.128.143.28"
ftp1.Account =
"foxuser"
ftp1.Password =
"138238110"
dls = ftp1.GetDirList("\photo")
For
Each
dl
As
String
In
dls
Output.Show(dl)
Next
GetDetailList
用于返回FTP服务器指定目录下的全部文件和子目录,包括文件的名称、修改时间和大小,各项之间用符号*分隔。
GetDetaiList(Path)
Path:可选参数,用于指定目录,如果省略,则返回当前目录下的全部文件和子目录信息。
Dim
ftp1
As
New FtpClient
Dim
dls
As
List(of
String)
ftp1.Host="196.128.143.28"
ftp1.Account =
"foxuser"
ftp1.Password =
"138238110"
dls = ftp1.GetDetailList("\")
For
Each
dl
As
String
In
dls
Output.Show(dl)
Next
GetFileSize
返回ftp上指定文件的大小,以字节为单位。
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
Dim
sz
As
Integer
sz = ftp1.GetFileSize("\photo\jz.png")
Output.Show("文件大小:"
& sz)
GetFileTime
返回ftp上指定文件最后一次修改的日期时间。
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
Dim
sz
As
Date
sz = ftp1.GetFileTime("\photo\jz.png")
Output.Show("修改时间:"
& sz)
FileExists
判断指定的文件是否存在,语法:
FileExists(FileName)
FileName:要判断的文件名,含路径。
示例
Dim
ftp1
As
New FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account =
"foxuser"
ftp1.Password =
"138238110"
If
ftp1.FileExists("\photo\jz.png")
Then
'如果存在则下载
If
ftp1.Download("\photo\jz.png","c:\data\jz.png")
Then
messagebox.Show("下载完成!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
messagebox.Show("下载失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End
If
Else
messagebox.Show("此文件不存在!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End
If
DirExists
判断指定的目录是否存在,语法:
DirExists(Path)
Path:要判断的目录。
示例
Dim
ftp1
As
New FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account =
"foxuser"
ftp1.Password =
"138238110"
If
ftp1.DirExists("\photo")
Then
MessageBox.show("目录已经存在","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End If
Rename
用于重命名文件或目录,语法:
Rename(currentName, newName)
currentName:要重命名的文件或目录,含路径。
newName:新的名称,含路径。
如果重命名成功,则返回True,否则返回False.
示例
重命名文件:
Dim
ftp1
As
New FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account =
"foxuser"
ftp1.Password =
"138238110"
If
ftp1.Rename("\Photo\Desert.jpg","\Photo\Desert1.jpg")
Then
Messagebox.show("重命名文件成功!")
End If
重命名目录:
Dim
ftp1
As
New FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account =
"foxuser"
ftp1.Password =
"138238110"
If
ftp1.Rename("\Key\","\NewKey\")
Then
Messagebox.show("重命名目录成功!")
End If
写这段帮助的时候,我意外发现Rename还可以移动文件。
例如将文件"jz.png"从photo目录移到到newkey目录:
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
If
ftp1.Rename("\photo\jz.png","\newkey\jz.png")
Then
Messagebox.show("移动文件成功!")
End If
MakeDir
在ftp上创建目录,语法:
MakeDir(Path)
Path:要创建的目录。
如果创建目录成功,则返回True,否则返回False.
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
If ftp1.MakeDir("\photo\hdx")
Then
Messagebox.Show("创建目录成功!")
Else
Messagebox.Show("创建目录失败!")
End If
DeleteDir
删除ftp上的指定目录,语法:
DeleteDir(Path)
Path:要删除的目录
如果删除成功,则返回True,否则返回False。
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
If ftp1.DeleteDir("\photo\hdx")
Then
Messagebox.Show("删除目录成功!")
Else
Messagebox.Show("删除目录失败!")
End If
ChangeDir
将指定目录设置为当前目录,语法:
ChangeDir(path)
path: 要设置为当前目录的目录。
示例
Dim
ftp1
As
New
FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
Messagebox.Show("当前目录:
"
&
ftp1.Currentdir)
ftp1.Changedir("\photo")
Messagebox.Show("当前目录:
"
&
ftp1.Currentdir)
SelectFile
打开文件对话框,从ftp上选择文件,返回一个字符串集合,返回选择的一个或多个文件。
示例
Dim
ftp1
As
New
FtpClient
Dim
files
As
New
List(of
String)
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
ftp1.ChangeDir("\photo")
files
=
ftp1.SelectFile()
For
each
file
As
String
In
files
Output.Show(file)
Next
SelectFolder
打开目录选择对话框,从ftp上选择一个目录。
示例
Dim
ftp1
As
New
FtpClient
Dim
folder
As
String
ftp1.Host="196.128.143.28"
ftp1.Account
=
"foxuser"
ftp1.Password
=
"138238110"
folder = ftp1.SelectFolder()
If folder
> ""
Then
Messagebox.show("你选择的目录是:"
& folder)
End If
Connect
连接FTP,如果连接成功,返回True,否则返回False。
FTP默认是自动判断并连接的,正如前面的示例代码,并不需要先连接FTP再进行操作。
如果愿意,也可以Connected属性判断FTP是否已经连通,用Connect方法显式连接FTP。
示例
Dim
ftp1 As
New FtpClient
ftp1.Host="196.128.143.28"
ftp1.Account
= "foxuser"
ftp1.Password
= "138238110"
ftp1.Changedir("\photo")
If
ftp1.Connected
= False
'如果FTP没有连接
If
ftp1.Connect
Then
'连接FTP
ftp1.OpenManager()
'如果连接成功,打开FTP客户端
Else
Messagebox.show("连接FTP失败!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
End
If
End If
Close
关闭FTP连接