C#FTP 550错误

gza*_*zak 3 c# ftp

我正在尝试以编程方式通过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我没有设置对象上的属性吗?任何帮助,将不胜感激.

gza*_*zak 6

原来FTP根目录不一定与URL根目录相同.也许我混淆了术语,所以让我解释一下:在我的情况下,连接到ftp.mydomain.com已经从/文件夹开始,所以我的URL只需要ftp://ftp.mydomain.com/file.zip.IE8知道如何消除原始路径中的冗余/文件夹部分,而FtpRequest类没有,这就是为什么它在IE8中工作但在C#代码中没有.

  • 这是我的问题.我需要将文件放在"upload"目录中,但在登录时,该文件夹默认为"download".当通过命令行执行ftp时,"cd upload"自动切换到"../upload".但URL必须是ftp://ftp.mydomain.com/../upload/file.txt而不是ftp://ftp.mydomain.com/upload/file.txt (2认同)