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