C# FTP:将文件从一个目录移动到另一个目录。异常:存在350个文件,可以使用新名称
Im将文件(orig.txt)上载到FTP目录,如Test/test4,在上载之前,Im将检查该文件是否存在于test4中,如果存在,则Im将该文件移动到存档文件夹,然后将该文件上载到test4目录。C# FTP:将文件从一个目录移动到另一个目录。异常:存在350个文件,可以使用新名称,c#,ftp,ftpwebrequest,C#,Ftp,Ftpwebrequest,Im将文件(orig.txt)上载到FTP目录,如Test/test4,在上载之前,Im将检查该文件是否存在于test4中,如果存在,则Im将该文件移动到存档文件夹,然后将该文件上载到test4目录。 当移动到存档文件夹时,我收到此异常。“350文件已存在,准备使用新名称。”。 下面是代码 if (CheckFileExists("ftp://1.1.1.4:1//Test/test4/orig.txt") //separate method which returns boolean {
当移动到存档文件夹时,我收到此异常。“350文件已存在,准备使用新名称。”。 下面是代码
if (CheckFileExists("ftp://1.1.1.4:1//Test/test4/orig.txt") //separate method which returns boolean
{
FtpWebRequest req = (FtpWebRequest)FtpWebRequest.Create("ftp://1.1.1.4:1//Test/test4/orig.txt")
req.Method = WebRequestMethods.Ftp.Rename;
req.Credentials = new NetworkCredential("user","pass");
req.KeepAlive = true;
req.Timeout = -1;
// Code ...if file exists in archive folder path then rename string fileName i.e example orig.txt to new_orig.txt
//req.RenameTo = ".../"+ ArchiveFolderPath + "/"+ fileName ;
req.RenameTo = ".../TestDirectory/Test2/test1/new_orig.txt";
try
{
FtpWebResponse response = (FtpWebResponse)req.GetResponse();
WriteToLogFile("Moved File to Archive Folder");
response.Close();
}
catch (WebException ex)
{
FtpWebResponse response = (FtpWebResponse)ex.Response;
WriteToLogFile("Status Code : "+response.StatusCode.ToString() + ",FTP Status Desc: " + response.StatusDescription);
response.Close();
}
}
// Actual Path of Archive Folder = "ftp://1.1.1.4:1//TestDirectory/Test2/test1/"
// File to be uploded ="ftp://1.1.1.4:1//Test/test4/"
我哪里做错了?请帮助这个问题似乎是意料之中的。检查它是否存在,然后尝试将文件放入orig.txt,但如果存在,则将其移动到test1/new_orig.txt。。。。。但是orig.txt已经存在,所以它会告诉你你已经知道的。@BugFinder:谢谢你的回复,但是我不明白。你能解释一下吗。在移动文件名(字符串)之前,我会更改文件名(字符串),因为存档文件夹中已经存在同名文件。如果您确定,那么唯一可以更改的是“../TestDirectory/Test2/test1/new_orig.txt”也已经存在。@BugFinder不,我检查过它不存在。嗯,只涉及2个文件,您确定。。那么它在哪一行告诉你它已经存在?