在ftp上创建文件夹

时间:2011-01-04 17:50:53

标签: c# 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)文件”

4 个答案:

答案 0 :(得分:3)

好吧,“如果文件夹已经存在,我想得到异常”和“如何让它覆盖现有文件夹”是两个相反的问题。

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

如果你需要以某种方式覆盖它,那么在创建新目录之前删除现有目录。

您可以在文章An FtpClient Class and WinForm Control中看到我为此编写的代码,但它只会覆盖现有内容。

答案 1 :(得分:1)

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

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);
    }

答案 2 :(得分:0)

您无法覆盖现有文件夹......我甚至不确定可能会带来哪些好处。

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

我不记得你是否可以删除当前包含文件的文件夹..如果你不能,那么你也必须删除它们。

答案 3 :(得分:0)

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

它有一个用于检查目录是否存在以及用于创建目录的API。

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

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