2013-10-06 53 views
0

我試圖從一個文件夾文件移動到另一個使用的FtpWebRequest但我不斷收到錯誤550這是我的代碼的文件;移動/重命名使用的FtpWebRequest

var requestMove = (FtpWebRequest)WebRequest.Create(Helper.PathFtp + Helper.NewFolder + file); 
requestMove.Method = WebRequestMethods.Ftp.Rename; 
requestMove.Credentials = networkCredential; 
requestMove.RenameTo = "../" + Helper.OldFolder + file; 
requestMove.GetResponse(); 

我可以列出,上傳,下載和刪除文件,但移動/重命名是無望的。我已看過一些帖子上都計算器等網站,並試圖像代理設置爲空,添加特殊字符路徑,但我不能找到一個可行的解決辦法的事情。

我WebRequest.Create使用的路徑是正確的,因爲我可以刪除它,所以它一定是我有一個問題與RenameTo。有任何想法嗎?

回答

0

錯誤550是指訪問被拒絕。如果ftp用戶擁有足夠的權限,程序(例如防病毒軟件,Windows縮略圖生成器等)可能會打開該文件並拒絕您的移動請求。

您需要與服務器管理員聯繫來解決問題。

+0

我有機會來刪除和創建文件 - 然後移動文件也應該是可能的。使用具有相同憑據的FTP程序也可以讓我移動文件,因此在這種情況下,我不認爲這是權限問題。當仔細查看例外情況時,它表示找不到文件或文件夾,但它確實存在(使用下載和刪除選項進行測試),因此它必須是RenameTo,即使我將它設置爲''RENAMED' +文件'應該只是重命名文件,而不是移動它。 – keysersoze

+0

然後檢查從FTP軟件發送的命令,並重播代碼中的命令。 –

+0

當FTP軟件重命名時,它使用一個長路徑(/ folder1/folder2/folder3/userfolder/test),並且在我的代碼中使用它實際上可行。唯一的問題是,這條道路只在這個測試場景中爲我所知,即使我知道它可以輕易改變。用戶只能訪問「用戶文件夾」。 – keysersoze