使用FtpWebRequest方法

时间:2017-10-10 18:00:02

标签: vb.net ftpwebrequest

我在一个小工具(Windows窗体)中实现一些FTP操作时遇到问题,以便在多个FTP服务器上进行数据管理。基本上我需要连接到具有凭据的ftp://xxx.xxx.xxx.xxx服务器列表,查找可用的任何* .csv文件,将其下载到本地硬盘然后在ftp服务器上删除它。

我完成了以下大部分工作:

  • 在列表中的所有ftp服务器上创建了一个连接循环
  • 对于每个连接,获取文件列表,下载列表中的每个文件并从服务器中删除

我的问题是我创建的删除子项给了我550异常(不是常规文件)。看起来很深,似乎是试图删除" /filename.csv"而不是" filename.csv",这就是错误的原因。

我认为这与文件在根目录中的事实有关,而我作为ftpwebrequest的参数传递的URI是" ftp://xxx.xxx.xxx.xxx/filename.csv"的形式,但是我不知道其他解决方法。

有人可以给我一个提示吗? 感谢

编辑:我认为可能会发送" cd /"请求删除之前的命令可以解决问题,但我不知道如何在FTP_Delete函数中实现它。有任何想法吗?感谢

Sub FTP_Delete(filename As String, ftp_adress As String, user As String, password As String)

    FileFullPath = ftp_adress & "/" & filename

    'Create Request To Delete File'
    Dim wrDelete As FtpWebRequest = CType(WebRequest.Create(FileFullPath), FtpWebRequest)

    'Specify That You Want To Delete A File'
    wrDelete.Method = WebRequestMethods.Ftp.DeleteFile

    'Specify Username & Password'
    wrDelete.Credentials = New NetworkCredential(user, password)

    'Response Object'
    Dim rDeleteResponse As FtpWebResponse

    Try
        rDeleteResponse = CType(wrDelete.GetResponse(), FtpWebResponse)  ' ** Eccezione
    Catch errore As WebException
        rDeleteResponse = DirectCast(errore.Response, FtpWebResponse)
        Me.UpdateHistory("Delete Error: " & rDeleteResponse.StatusCode & "-" & rDeleteResponse.StatusDescription)
    End Try

    'Close'
    rDeleteResponse.Close()
End Sub

0 个答案:

没有答案