我正在尝试以编程方式通过FTP以C#方式下载文件,这里是相关代码(显然有假信用证和URI):
try
{
var request = FtpWebRequest.Create("ftp://ftp.mydomain.com/folder/file.zip");
request.Credentials = new NetworkCredential("username", "password");
using (var response = request.GetResponse())
{
...
}
}
catch (WebException we)
{
...
}
Run Code Online (Sandbox Code Playgroud)
抛出异常request.GetResponse(),错误代码为550.问题不在于凭据或URI,因为它们在IE中工作正常并且文件在那里成功下载.我错过了什么?我应该使用其他类型的凭据对象吗?request我没有设置对象上的属性吗?任何帮助,将不胜感激.
原来FTP根目录不一定与URL根目录相同.也许我混淆了术语,所以让我解释一下:在我的情况下,连接到ftp.mydomain.com已经从/文件夹开始,所以我的URL只需要ftp://ftp.mydomain.com/file.zip.IE8知道如何消除原始路径中的冗余/文件夹部分,而FtpRequest类没有,这就是为什么它在IE8中工作但在C#代码中没有.