FTP目录可在Internet Explorer中浏览,但不能在Windows Explorer中浏览;VB.NET代码来伪造网页浏览
我有一个奇怪的例子,客户端的FTP服务器可以在web浏览器中完全浏览,但不能在文件浏览器中浏览 这就是我在IE中看到的: 这就是我在Windows资源管理器中看到的: 我真正想做的是编写代码,从这个ftp目录中读取文件列表:FTP目录可在Internet Explorer中浏览,但不能在Windows Explorer中浏览;VB.NET代码来伪造网页浏览,vb.net,internet-explorer,ftp,windows-explorer,Vb.net,Internet Explorer,Ftp,Windows Explorer,我有一个奇怪的例子,客户端的FTP服务器可以在web浏览器中完全浏览,但不能在文件浏览器中浏览 这就是我在IE中看到的: 这就是我在Windows资源管理器中看到的: 我真正想做的是编写代码,从这个ftp目录中读取文件列表: Dim ftpRequest As FtpWebRequest = CType(WebRequest.Create(ftpServer), FtpWebRequest) ftpRequest.Credentials = New NetworkCredential(ftp
Dim ftpRequest As FtpWebRequest = CType(WebRequest.Create(ftpServer), FtpWebRequest)
ftpRequest.Credentials = New NetworkCredential(ftpServerUsername, ftpServerPassword)
ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDetails
Dim ftpResponse As FtpWebResponse = CType(ftpRequest.GetResponse(), FtpWebResponse)
Dim ftpResponseStream As Stream = ftpResponse.GetResponseStream()
Dim ftpResponseStreamReader As StreamReader = New StreamReader(ftpResponseStream)
Console.WriteLine(ftpResponseStreamReader.ReadToEnd())
ftpResponseStreamReader.Close()
ftpResponseStream.Close()
ftpResponse.Close()
但代码失败,出现451错误:
远程服务器返回一个错误:(451)处理中的本地错误。(详细信息:451请求的操作已中止:处理中出现本地错误)
问题:
ftp://username:password@IP地址/
正常工作
然而,对于代码而言,URL末尾的斜杠“/”起了作用 我将目录名从
ftp://server/directory
至ftp://server/directory/
然后砰的一声!VB能够检索文件列表
我在IE中也尝试过同样的方法,下面是我得到的:
ftp://193.XX.XX.XX/flog
:
ftp://193.XX.XX.XX/flog/
:(注意目录名末尾的“/”)
任何在处理过程中遇到(451)本地错误的人都可以尝试一下,看看是否有帮助
附加说明:
格式的URLftp://username:password@IPAddress/
(同样,请注意结尾“/”)也适用于代码。使用此选项,您可以跳过第ftpRequest.Credentials=…
行。您是否尝试将用户名和密码嵌入Windows资源管理器URL中。i、 e.“f t p://username:password@IP address”(我在评论中遇到了问题——显然没有空格)。@Ciarán:Wow!真管用!我现在可以在Windows资源管理器中看到FTP。但当我将代码中的输入URL更改为此格式时,仍然不起作用!:(很高兴为您提供帮助,-我本人没有与ftpRequest合作过,因此无法对您的其余问题发表评论。不过,从FTP服务器获取文件列表是一项相当标准的操作,因此我相信其他人会帮助您完成这项工作。