【问题标题】:C# FTP connect to specific PATH bypassing the ROOTC# FTP 绕过 ROOT 连接到特定路径
【发布时间】:2015-06-24 10:11:22
【问题描述】:

我需要将文件上传到我的 ftp 服务器中的特定文件夹。 问题是访问 ftp 的权限仅限于特定文件夹,而不是根文件夹。

发送此请求会收到错误 550

。 看起来我的 ftp 请求转到了根目录,而不是更改了目录。我需要将请求发送到特定路径。例如,如果使用 mozilla,我可以轻松地做到这一点并且不会收到错误。

(如果我仅先连接到根路径,我会收到 550)

有什么想法吗?

 Uri target = new Uri("ftp://mtftpserver/folder");

    try
    {


        ftpRequest = (FtpWebRequest)FtpWebRequest.Create(target);        
        ftpRequest.UseBinary = true;
        ftpRequest.UsePassive = true;
        ftpRequest.KeepAlive = true;

        ftpRequest.Method = WebRequestMethods.Ftp.UploadFile;        
        ftpStream = ftpRequest.GetRequestStream();
        FileStream localFileStream = new FileStream(localFile, FileMode.Create);
        byte[] byteBuffer = new byte[bufferSize];
        int bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
        try
        {
            while (bytesSent != 0)
            {
                ftpStream.Write(byteBuffer, 0, bytesSent);
                bytesSent = localFileStream.Read(byteBuffer, 0, bufferSize);
            }
        }
        catch (Exception ex) { Console.WriteLine(ex.ToString()); }
        localFileStream.Close(); 
        ftpStream.Close();
        ftpRequest = null;
    }


    catch (Exception ex) { Console.WriteLine(ex.ToString()); }

    return;

【问题讨论】:

  • 是 ftp 帐户指示它自己的“根”所在的位置。只是给个提示。
  • 没有帐号。我只需将 ftp 地址粘贴到普通的 Windows 资源管理器文件夹中即可访问该文件夹。而且我可以在其中复制文件。在资源管理器中是可能的,应该可以在 c# 中自动化它
  • 所有 FTP 访问都有一个与之配套的帐户。对于您提供的信息,请检查来宾用户的默认根。
  • 默认用户为none,基本为空。请注意我说我可以通过任何 FTP 客户端软件访问文件夹而不使用凭据的部分。只是文件夹,如果我尝试使用主根目录,我还是会得到 550。
  • 有了 FTP,一切都需要一个帐户。对于空白帐户,您将自动以访客用户身份登录,或者对于也映射到访客用户的 IIS 匿名帐户。如果您查看您的 FTP 服务器(内置或其他),则有 2 组默认 root .. 1 用于登录用户,1 用于匿名或访客。

标签: c# path ftp directory


【解决方案1】:

FTP error codes 错误 550 是“由于访问级别,文件不可用”

如果您在没有任何凭据或帐户的情况下连接到 FTP 服务器,您将自动以匿名用户或访客用户身份登录。

访客用户有一个预定义的根目录,与登录用户的根文件夹不同。通常,来宾、匿名用户只能使用有限的文件夹。

您正在尝试移动到默认用户无权访问的另一个文件夹,这是引发无效访问错误或错误 550 的文件夹。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-01-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    相关资源
    最近更新 更多