Imports System.Net Imports FluentFTP Public Class FtpServer Private User As String Private Pass As String Private Host As String Private Port As String = "21" Private Client As FtpClient ' = New FtpClient("123.123.123.123") Sub New(ByVal user As String, ByVal pass As String, ByVal host As String) Me.User = user Me.Pass = pass Me.Host = host Me.Init() End Sub Sub New(ByVal user As String, ByVal pass As String, ByVal port As String, ByVal host As String) Me.User = user Me.Pass = pass Me.Host = host Me.Port = port Me.Init() End Sub ''' <summary> ''' 连接FTP服务器 ''' </summary> Private Sub Init() Client = New FtpClient(String.Format("{0}", Me.Host), Me.User, Me.Pass) '开始连接Server Client.Connect() End Sub ''' <summary> ''' 文件列表 ''' </summary> ''' <param name="dirName"></param> Public Sub FileList(ByVal DirName) For Each item As FtpListItem In Client.GetListing(DirName) If item.Type = FtpFileSystemObjectType.File Then MsgBox(String.Format("文件名称{0}", item.FullName)) ElseIf item.Type = FtpFileSystemObjectType.Directory Then MsgBox(String.Format("目录名称{0}", item.FullName)) End If Next End Sub Public Sub FileList() FileList("/") End Sub ''' <summary> ''' ''' </summary> ''' <param name="SourcePath">本地路径</param> ''' <param name="TargetPath">FTP服务路径</param> Public Sub UploadFile(ByVal SourcePath As String, ByVal TargetPath As String) Client.UploadFile(SourcePath, TargetPath) End Sub ''' <summary> ''' 重命名 ''' </summary> ''' <param name="OldName">旧名称</param> ''' <param name="NewName">新名称</param> Public Sub Rename(ByVal OldName As String, ByVal NewName As String) Client.Rename(OldName, NewName) End Sub ''' <summary> ''' 下载文件 ''' </summary> ''' <param name="SourcePath">本地路径</param> ''' <param name="TargetPath">FTP服务路径</param> Public Sub DownloadFile(ByVal SourcePath As String, ByVal TargetPath As String) Client.DownloadFile(SourcePath, TargetPath) End Sub ''' <summary> ''' 删除文件 ''' </summary> ''' <param name="DelPath">文件路径</param> Public Sub DeleteFile(ByVal DelPath) Client.DeleteFile(DelPath) End Sub ''' <summary> ''' 判断文件是否存在 ''' </summary> ''' <param name="FilePath"></param> ''' <returns></returns> Public Function FileExists(ByVal FilePath) As Boolean Return Client.FileExists(FilePath) End Function ''' <summary> ''' 判断文件夹是否存在 ''' </summary> ''' <param name="DirPath"></param> ''' <returns></returns> Public Function DirectoryExists(ByVal DirPath) As Boolean Return Client.DirectoryExists(DirPath) End Function ''' <summary> ''' 断开连接 ''' </summary> Public Sub Close() Client.Disconnect() End Sub End Class
需要引入 FluentFTP.dll类库
可以自行去下载引入
主入口
Public Class Form1
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load
'Dim RootPath As String = Windows.Forms.Application.StartupPath & "\../../"
'Dim str As String = System.IO.File.ReadAllText(RootPath & "Conf/FtpInit.xml")
'MsgBox(str)
Dim obj As New FtpServer("969721569@qq.com", "123456789++", "172.16.11.72")
'获取目录名称
'obj.FileList("/eocard")
'上传
'obj.UploadFile("C:\Users\xymgk\Downloads\ARJ21-A-91-11-00-33A-25BA-A.zip", "\eosbparse\ARJ21-A-91-11-00-33A-25BA-A.zip")
'下载
'obj.DownloadFile("D:\ARJ21-A-91-11-00-33A-25BA-A.zip", "\eosbparse\ARJ21-A-91-11-00-33A-25BA-A.zip")
'删除
'obj.DeleteFile("\eosbparse\ARJ21-A-91-11-00-33A-25BA-A.zip")
'判断文件是否存在
'Dim flag As Boolean = obj.FileExists("\eosbparse\ARJ21-A-91-11-00-33A-25BA-A.zip")
'判断目录是否存在
'Dim flag As Boolean = obj.DirectoryExists("\eosbparse")
'MsgBox(flag)
End Sub
End Class