在FTP服务器上重命名文件时,获取“(553)文件名不被允许”

时间:2016-12-14 04:56:39

标签: c# .net ftp ftpwebrequest

在我的应用程序中,我将FTP服务器中的文件放在一个目录中,然后将该文件源移动到目标路径。在此过程中,当我移动选定的源文件时,源文件将不会显示在源路径中,它将仅显示在目标路径中。

我在下面的代码中尝试了这个,但是我收到了错误:

string sourceurl = "ftp://ftp.com/Mainfoder/Folder1/subfolder/subsubfolder/"
string Targetpat =
    "ftp://ftp.com/Mainfoder/DownloadedFiles/"+subfolder+"/"+todaydatefolder+"/"+susubfolder;
Uri serverFile = new Uri(sourceurl + filename);
request = (FtpWebRequest)FtpWebRequest.Create(serverFile);
request.Method = WebRequestMethods.Ftp.Rename;
request.Credentials = new NetworkCredential(ftpUserID, ftpPassword);
request.RenameTo = Targetpat+"/"+newfilename;//folders without filename
response = (FtpWebResponse)request.GetResponse();               
Stream ftpStream = response.GetResponseStream();    
  

System.dll中出现未处理的“System.Net.WebException”类型异常   附加信息:远程服务器返回错误:(553)现在允许文件名。

response = (FtpWebResponse)request.GetResponse(); //This line throwing the above exception   

request.RenameTo = newfilename:当我只设置newfilename时,它只重命名该源相同的文件名。

如何将此文件移动到同一FTP服务器中的另一个目录?

请有人告诉我。谢谢

1 个答案:

答案 0 :(得分:1)

作为I wrote you already before

  

request.RenameTo仅采用路径。

所以这是错误的:

string Targetpat =
    "ftp://ftp.com/Mainfoder/DownloadedFiles/"+subfolder+"/"+todaydatefolder+"/"+susubfolder;
request.RenameTo = Targetpat+"/"+newfilename;

应该是:

string Targetpat =
    "/Mainfoder/DownloadedFiles/"+subfolder+"/"+todaydatefolder+"/"+susubfolder;
request.RenameTo = Targetpat+"/"+newfilename;