我在使用下面的代碼重新命名一個FTP文件的問題:僅在.NET Framework 4.0中的FTP服務器上重命名文件時出現問題!
Dim Request As FtpWebRequest = DirectCast(WebRequest.Create(New Uri("ftp://sftp.mycompany.com/myfile.txt")), FtpWebRequest)
'Set that we will be renaming a file
Request.Method = WebRequestMethods.Ftp.Rename
'Provide the new filename
Request.RenameTo = NewFileName
'The credentials needed to log onto the server
Request.Credentials = New NetworkCredential("username", "password")
'We are going to enable SSL for the communication with the FTP server as required by the remote server.
Request.EnableSsl = True
Request.UsePassive = True
Request.KeepAlive = False
'Create a Response object getting the downloaded file
Dim Response As FtpWebResponse = DirectCast(Request.GetResponse(), FtpWebResponse)
Response.Close()
我從來沒有真正有它的工作或需要重新命名一個FTP文件到.NET 4.0所以這是第一次代碼我寫的。關閉此代碼以下載文件WORKS,以便它不是SSL或FTP問題(請參閱跟蹤詳細信息)顯然儘管此代碼被記錄爲可在Framework 3.5或更高版本中使用。在VS.NET 2010 .NET Framework 4.0項目中,我總是回頭:「遠程服務器返回一個錯誤:(550)文件不可用(例如文件未找到,無法訪問)」。
猜猜是什麼......將確切的代碼複製到舊的VS.NET 2008測試項目中再次運行 - >完美運行!
所以我想我只是把這個代碼包裝在一個以3.5框架爲目標的二進制文件中,然後在我的VS.NET 2010項目中引用它來取代錯誤,但它沒有奏效。
我試着添加一個解決方法,我發現聲明爲文件名添加前綴「%2E /」對我無效。我跟蹤日誌保持輸出相同的結果:
System.Net信息:0:[2228] FtpControlStream#15409429 - 收到的響應[257 「/用戶/企業」 是當前目錄]
System.Net信息:0: [2228] FtpControlStream#15409429 - 發送命令[RNFR /myfile.txt]
System.Net信息0:[2228] FtpControlStream#15409429 - 接收到的響應[550文件/myfile.txt未找到]
VS.NET 2008在重命名文件之前有不同的結果省略第一個斜槓:
System.Net信息:0:[6460] FtpControlStream#40715158 - 接收到的響應[257「/ users/company」是當前目錄]
System.Net信息:0:FtpControlStream#40715158 - 發送命令[CWD /用戶/公司/]
System.Net信息:0:[6460] FtpControlStream#40715158 - 接收到的響應[250命令CWD成功]
System.Net信息:0:FtpControlStream#40715158 - 發送命令[ RNFR的myfile.txt]
System.Net信息:0:[6460] FtpControlStream#40715158 - 收到的響應[350輸入新的名稱]
System.Net信息:0:[6460] FtpControlStream#40715158 - 發送命令[RNTO myfileOLD.txt]
System.Net信息:0:[6460] FtpControlStream#40715158 - 收到的響應[250改名]
我想盡組合並不能得到這個工作,除了在VS.NET 2008或之前運行時。這聽起來像一個錯誤或無證的程序更改,可能會保證connect.microsoft.com上的條目。
對此有何幫助或建議?
謝謝!
我已經加入了微軟連接錯誤報告在這個問題上,他們確實做回那個迴應是有人用下面的語句的問題:「感謝您報告此問題,我們將計劃在未來的版本中解決這一問題。 「現在狀態已移至「固定」。這裏是鏈接:https://connect.microsoft.com/VisualStudio/feedback/details/621450/problem-renaming-file-on-ftp-server-using-ftpwebrequest-in-net-framework-4-0-vs2010 -只要 – atconway 2010-12-14 14:28:36