C#操作FTP報錯,遠程服務器返回錯誤:(550)文件不可用(例如,未找到文件,無法訪問文件)的解決方法


最近在做項目的時候需要操作ftp進行文件的上傳下載,但在調用using (var response = (FtpWebResponse)FtpWebRequest.GetResponse())的時候總是出現"遠程服務器返回錯誤:(550)文件不可用(例如,未找到文件,無法訪問文件)"的異常。在網上也沒有找到好的解決方案,於是自己研究了下給解決了,分享給大家,希望對大家能有所幫助。

異常信息

這種情況是因為FTP設置的默認目錄引發的,以我現在的項目為例,在程序中我要訪問的路徑為 ftp://192.168.0.225/2007/35/0037/00001/1.jpg 這個路徑,但服務器上設置的默認路徑為 E:\pmserver\FTPServer\FTPSERVER ,

 

我們打開相應的ftp目錄看下,這個目錄下面並沒有我要訪問的2007這個文件夾

那2007這個文件夾在什么位置呢?可以看到,2007這個文件夾是在ftpserver的上一級目錄,而ftp設置的默認目錄為ftpserver里,也就是說在程序中默認打開的目錄對應的物理地址是E:\pmserver\FTPServer\FTPSERVER,您也看到了,E:\pmserver\FTPServer\FTPSERVER目錄下根本就沒有2007的文件夾,所以就會拋出異常"遠程服務器返回錯誤:(550)文件不可用(例如,未找到文件,無法訪問文件)"。

解決方法其實很簡單,設置下服務ftp的默認路徑即可 (IIS配置的ftp也是一樣的)

在通過程序進行訪問,可以看到已經獲得到了文件流信息。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM