我需要从FTP服务器下载文件。 路径和文件名是
ftp://10.17.20.60/ata0b/OpconData/StationData/Station.dat
当我想查看StationData目录中的所有文件时,我使用
Dim request As Net.FtpWebRequest = Net.FtpWebRequest.Create("ftp://10.17.20.60/%2F/ata0b/OpconData/StationData/")
request.Method = Net.WebRequestMethods.Ftp.ListDirectory
request.Credentials = New Net.NetworkCredential(form1.txtFTPUser.Text, form1.txtFTPPasswort.Text)
Dim response As Net.FtpWebResponse = request.GetResponse()
有了这个,我得到了目录的内容。当然,我看到了Station.dat文件。我能够使它工作,因为我使用%2F参数将目录更改为ata0b。 到目前为止一切都很好!
现在我想下载Station.dat文件。但我总是在下面代码的最后一行收到错误(550) File unavailable (e.g., file not found, no access)
。
我的代码如下所示:
'Create Request To Download File'
Dim wrDownload As FtpWebRequest = WebRequest.Create("ftp://10.17.20.60/%2F/ata0b/OpconData/StationData/Station.dat")
'Specify That You Want To Download A File'
wrDownload.Method = WebRequestMethods.Ftp.DownloadFile
'Specify Username & Password'
wrDownload.Credentials = New NetworkCredential("opconadmin", "OpconAdmin")
'Response Object'
Dim rDownloadResponse As FtpWebResponse = wrDownload.GetResponse()
我的失败是什么?在我看来,文件必须在给定的路径上。我真的希望有人可以给我一个提示。
BR 斯特芬
答案 0 :(得分:0)
错误意味着它说的是什么。但是让我解释为什么会发生这种情况:
1•服务器上的文件可能不可用/不存在
2•您可能面临文件中的安全问题'问题 。
可能还有其他原因,如服务器超时或其他原因..
但是,您需要找出错误消息的真正含义。为此,您可以使用TRY-CATCH
语句。 E.g。
Try
'YOur code here
Catch e as WebException
Msgbox(e.Message) 'you can use e.tostring for more details
在你发现究竟是什么问题之后,你就能够解决它。看看这些:
http://www.dreamincode.net/forums/topic/76361-file-upload-to-server/
https://forums.asp.net/t/1777881.aspx
但是,我想建议的一件事是检查您是否有任何权限/安全问题。在您收到确切的错误消息后,它可能(或可能不会)证明是您没有足够的磁盘空间。但是,请尝试我的解决方案并留下回复以获得进一步的帮助。
<强>更新强>
尝试使用以下代码替换FTP链接:ftp://10.17.20.60//ata0b/OpconData/StationData/Station.da