C# 对存在的目录使用ListDirectoryDetails时,FtpWebRequest返回“550文件不可用(例如,找不到文件,无法访问)”
我有一个恼人的问题,阻止我在FTP中获取所需的文件。这个文件可能有不同的名称,所以我需要先访问文件夹,并列出其中的文件,然后直接请求该文件 我的问题是,例如,我可以在Filezilla中访问此文件,并完美地发现该文件夹,但当使用FtpWebResponse实例获取该文件夹时,我出现了一个错误 550文件不可用,例如找不到文件,无法访问 代码如下:C# 对存在的目录使用ListDirectoryDetails时,FtpWebRequest返回“550文件不可用(例如,找不到文件,无法访问)”,c#,.net,ftp,ftpwebrequest,C#,.net,Ftp,Ftpwebrequest,我有一个恼人的问题,阻止我在FTP中获取所需的文件。这个文件可能有不同的名称,所以我需要先访问文件夹,并列出其中的文件,然后直接请求该文件 我的问题是,例如,我可以在Filezilla中访问此文件,并完美地发现该文件夹,但当使用FtpWebResponse实例获取该文件夹时,我出现了一个错误 550文件不可用,例如找不到文件,无法访问 代码如下: FtpWebRequest wr = (FtpWebRequest)WebRequest.Create("ftp://ftp.dachser
FtpWebRequest wr = (FtpWebRequest)WebRequest.Create("ftp://ftp.dachser.com/data/edi/kunden/da46168958/out");
wr.Method = WebRequestMethods.Ftp.ListDirectoryDetails;
wr.Credentials = new NetworkCredential("login", "password");
FtpWebResponse response = (FtpWebResponse)wr.GetResponse();
Stream reponseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(reponseStream);
string names = reader.ReadToEnd();
FtpWebResponse response=FtpWebResponsewr.GetResponse
线路是否抛出错误
PS:生产、测试和FileZilla在同一个域上,如果有帮助,使用相同的internet连接
感谢您的关注和反馈
FileZilla日志:
从我的程序记录,红色圆圈的错误与FTP错误无关
当FtpWebRequest解释URL时,它不考虑将主机名和路径分隔为路径的一部分的斜杠。提取的路径然后按原样与FTP CWD命令一起使用。这意味着FTP服务器将解析相对于主目录的路径。如果您的帐户没有chrooted,则客户不会将home视为根,缺少前导斜杠会导致意外行为
在您的例子中,您从/remote/path开始,并使用类似URL的URLftp://example.com/remote/path/,它将尝试更改为remote/path,因此最终将更改为/remote/path/remote/path。那不是你想要的 或者必须使用主文件夹的相对路径。在您的情况下,什么是使用没有任何路径的URL。 或者使用绝对路径,在主机名后需要使用两个斜杠:ftp://example.com//remote/path/. 还要注意,文件夹的URL应以斜杠结尾:对于其他550个问题,请参阅
< P>当FtpWebRequest解释URL时,它不考虑将主机名和路径分隔为路径的一部分的斜杠。提取的路径然后按原样与FTP CWD命令一起使用。这意味着FTP服务器将解析相对于主目录的路径。如果您的帐户没有chrooted,则客户不会将home视为根,缺少前导斜杠会导致意外行为 在您的例子中,您从/remote/path开始,并使用类似URL的URLftp://example.com/remote/path/,它将尝试更改为remote/path,因此最终将更改为/remote/path/remote/path。那不是你想要的 或者必须使用主文件夹的相对路径。在您的情况下,什么是使用没有任何路径的URL。 或者使用绝对路径,在主机名后需要使用两个斜杠:ftp://example.com//remote/path/. 还要注意,文件夹的URL应以斜杠结尾: 有关其他问题,请参阅