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连接


本页地址:http://www.foxtable.com/webhelp/topics/1410.htm