我已经检查了这个主题的其他帖子,但在尝试上传文件之前,我似乎无法弄清楚检查 FTP服务器上是否存在目录的基础知识
使用以下代码,我尝试上传到已存在的文件夹时会得到exception
。我觉得在创建目录之前使用某种folder.Exists
应该不会太难,但我无法让它工作。有什么想法吗?
截至目前的上传方法:
String id = Request.QueryString["ID"];
String path = Server.MapPath("~/temp/");
String filename = Path.GetFileName(fuPicture.PostedFile.FileName);
if (fuPicture.HasFile)
{
try
{
fuPicture.PostedFile.SaveAs(path + fuPicture.FileName);
}
catch (Exception ex)
{
lblFeedback.Text = "Fel vid uppladdning";
}
path += fuPicture.FileName;
String ftpServer = "ftp://xxx";
String userName = "xx";
String password = "xx";
FtpWebRequest request = (FtpWebRequest)WebRequest.Create(new Uri("ftp://xx/" + id));
// I want to implement an if-condition here
// whether or not the folder exists
request.Method = WebRequestMethods.Ftp.MakeDirectory;
request.Credentials = new NetworkCredential(userName, password);
using (var resp = (FtpWebResponse)request.GetResponse())
{
WebClient client = new WebClient();
client.Credentials = new NetworkCredential(userName, password);
client.UploadFile(ftpServer + "/" + id + "/" + new FileInfo(path).Name, "STOR", path);
resp.Close();
}
答案 0 :(得分:0)
尝试列出目录ListDirectory
,如果找不到,则创建MakeDirectory
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(userName, password);
try
{
using (request.GetResponse())
{
//continue
}
}
catch (WebException)
{
request.Method = WebRequestMethods.Ftp.MakeDirectory;
using (request.GetResponse())
{
//continue
}
}