我正在使用方法在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)文件”
答案 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。