繁体   English   中英

在ftp上创建文件夹

[英]Create folder on ftp

我正在使用在ftp上创建文件夹的方法,如果文件夹已经存在,如何覆盖现有文件夹,则要获取异常

using System; using System.Net;

class Test {
    static void Main()
    {
        WebRequest request = WebRequest.Create("ftp://host.com/directory");
        request.Method = WebRequestMethods.Ftp.MakeDirectory;
        request.Credentials = new NetworkCredential("user", "pass");
        using (var resp = (FtpWebResponse) request.GetResponse())
        {
            Console.WriteLine(resp.StatusCode);
        }
    } }

它是“找不到远程服务器返回的错误(550)文件”

好吧,“如果文件夹已经存在,我想获取例外”和“如何使其覆盖现有文件夹”是两个相反的问题。

无论如何,前几天我只是实现了代码。 只需检查目录是否已经存在。 然后基于此做出响应。 尝试创建一个已经存在的目录没有任何意义。

并且,如果您需要以某种方式覆盖它,则在创建新目录之前删除现有目录。

您可以在文章FtpClient类和WinForm控件中看到我为此编写的代码,尽管它只会覆盖现有内容。

我在解决方案中使用此功能

private void createFolder(string ftpUName, string ftpPWord)
    {
            WebRequest ftpRequest = WebRequest.Create("ftp://mrhotro.ad/new_sc");
            ftpRequest.Method = WebRequestMethods.Ftp.MakeDirectory;
            ftpRequest.Credentials = new NetworkCredential(ftpUName, ftpPWord);
    }

您无法覆盖现有文件夹...我什至不知道这样做会有什么好处。

简而言之,您需要捕获异常并决定要做什么。 要么将其保留在原位(毕竟它已经存在...),要么您需要删除现有文件夹并尝试重新创建它。

我不记得是否可以删除当前包含文件的文件夹。如果不能删除,则也必须删除这些文件。

您可能要考虑一些现有的ftp库。 我一直在使用它,并取得了巨大的成功。 它是一个FTP客户端库,为.NET Framework 2.0中的FTPrequest提供高级FTP功能。

它具有用于检查目录是否存在和用于创建目录的API。

代码@ http://ftpclient.codeplex.com/

文章@ http://www.codeproject.com/KB/IP/FtpClient.aspx

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM