【问题标题】:c# Upload to ftp with not created directorys on ftp serverc#上传到ftp而不在ftp服务器上创建目录
【发布时间】:2018-03-25 13:01:24
【问题描述】:

这是我要上传到 ftp 服务器的路径:

_ftp://ftp-server/products/productxx/versionxx/releasexx/delivery/data.zip

问题是服务器上不存在文件夹“productxx/versionxx/releasexx/delivery/”
我可以在 c# 中上传 .zip 文件时自动创建它们吗

我现在的编码是:

                FtpWebRequest request =
                    (FtpWebRequest)WebRequest.Create(pathToFtp);
                // Method set to UploadFile 
                request.Method = WebRequestMethods.Ftp.UploadFile;
                // set password and username
                request.Credentials = new NetworkCredential(UserName, Password);
                // write MemoryStream in ftpStream 
                using (Stream ftpStream = request.GetRequestStream())
                {
                    memoryStream.CopyTo(ftpStream);
                }

我在“using (Stream ftpStream =request.GetRequestStream( ))"

但如果我的 pathToFtp 是 _ftp://ftp-server/products/data.zip 它运行良好

【问题讨论】:

    标签: c# ftp upload


    【解决方案1】:

    可用的请求方法之一是WebRequestMethods.Ftp.MakeDirectory。你应该可以用它来做你想做的事。

    这样的东西(虽然我没有测试过),应该可以解决问题:

    async Task CreateDirectory(string path)
    {
        FtpWebRequest request = (FtpWebRequest)WebRequest.Create(path);
        request.Method = WebRequestMethods.Ftp.MakeDirectory;
    
        using (var response = (FtpWebResponse)(await request.GetResponseAsync()))
        {
            Console.WriteLine($"Created: {path}");
        }
    }
    

    这里有更详细的回答How do I create a directory on ftp server using C#?

    【讨论】:

    • 谢谢,如果不存在,它不会提供直接创建目录的方法,对吗?
    • WebRequestMethods.Ftp.ListDirectoryWebRequestMethods.Ftp.ListDirectoryDetails 请求方法可以帮助你。您可以尝试创建目录并处理响应。据我所知,没有“如果不存在则创建”命令。
    • 使用await request.GetResponseAsync()有什么意义?直接使用request.GetResponse()
    猜你喜欢
    • 2013-01-14
    • 1970-01-01
    • 2010-10-26
    • 1970-01-01
    • 1970-01-01
    • 2011-11-14
    • 2018-10-22
    • 2011-02-19
    • 2015-01-06
    相关资源
    最近更新 更多