【问题标题】:Changing path to upload file in FTP [duplicate]更改在 FTP 中上传文件的路径 [重复]
【发布时间】:2012-09-06 04:06:55
【问题描述】:

可能重复:
How do you change directories using FtpWebRequest (.NET)?

    private void InitFTPTransfer(string filePath)
    {
        string[] ftpAddress = ddcdao.ddcAddress.Split(new string[] { "http://" }, StringSplitOptions.None);
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" + ftpAddress[1] + "/root/" + Path.GetFileName(filePath));
        request.Method = WebRequestMethods.Ftp.UploadFile;

        request.Credentials = new NetworkCredential(Properties.Settings.Default.SysFTPID, Properties.Settings.Default.SysFTPPassword);

        byte[] fileContents = File.ReadAllBytes(filePath);

        request.ContentLength = fileContents.Length;

        Stream requestStream = request.GetRequestStream();
        requestStream.Write(fileContents, 0, fileContents.Length);
        requestStream.Close();

        FtpWebResponse response = (FtpWebResponse)request.GetResponse();

        response.Close();

    }

我有上述代码可以将特定文件上传到路径。

在 ftp 中,我如何设置一个特定的目录来上传文件?

在这种情况下,我正在上传到带有嵌入式 linux 的机器,因此它需要位于 /root/somedirectory 下

编辑:我已经尝试过在请求路径中实际包含目录路径的建议,但它只是在 request.GetRequestStream(); 行抛出 System.Net.WebException 并显示消息“系统错误”;

【问题讨论】:

  • @jcolebrand 嵌入 linux,而不是 windows
  • 好的,解释一下我的建议怎么行不通?你显然没有说你已经尝试过什么。为什么将路径放在文件名中不起作用?
  • @jcolebrand 它只是在“request.GetRequestStream()”处抛出 System.Net.WebException。异常消息是“系统错误”

标签: c# .net wpf ftp


【解决方案1】:

您将目录放在请求的路径中,即

FtpWebRequest request = (FtpWebRequest)WebRequest.Create("ftp://" 
                         + ddcdao.ddcAddress + "/" + someDirectory 
                         + "/" someFile);

【讨论】:

  • 我知道,在对请求进行了大约 15 分钟的研究后,我意识到,但后来我在上面找到了 Skeet 的答案,并认为这与它得到的一样明确......但是,他可以链接,我应该编辑那个..
  • 哈哈哈,我从来不想面对这个问题,我很高兴 Skeet 做到了。 :p 感谢您的个人资料扫描 ;-)
猜你喜欢
  • 2015-04-21
  • 2018-01-20
  • 2021-10-24
  • 1970-01-01
  • 2010-11-17
  • 2013-01-23
  • 2017-10-28
  • 1970-01-01
  • 2013-08-25
相关资源
最近更新 更多