2017-04-07 223 views
0

我遇到FluentFTP庫的UploadFiles方法問題。這是我的代碼:調用UploadFiles時出現「無法找到文件」錯誤

var count = _client.UploadFiles(filesPaths, remotePath, true, true); 
foreach(var path in filesPaths) 
{ 
    AddLog(string.Format("Uploaded File: {0}", path)); 
} 

並執行UploadFiles後,它拋出一個異常說找不到文件。我發現當我使用remotePath = "/uploads"我有這個問題,但是當我將remotePath設置爲"/"時,該方法上傳文件沒有問題。我檢查了用戶權限,他可以做任何事情。

我不知道可能是什麼問題。我在GitHub中閱讀了源代碼,但我沒有發現任何奇怪的東西。

這是FluentFTP的錯誤嗎?或者我錯過了什麼?

+0

未來的讀者應該看到在庫的問題跟蹤交叉後,在https://github.com/robinrodricks/FluentFTP/issues/70。根本原因是FTP服務器上的權限問題。 –

回答

0

如果沒有創建文件夾/uploads,您將得到該異常。

選項1:手動創建文件夾上傳,然後再試一次

選項2:使用

DirectoryExists() - 檢查服務器上存在的目錄。

CreateDirectory() - 在服務器上創建一個目錄。如果父目錄 不存在,它們也會被創建。

0

很可能你會得到這個錯誤,因爲你的目標FTP目錄沒有包含任何文件,並且UploadFiles函數的第三個參數的默認值是FluentFTP.FtpExists.Overwrite。爲了克服這個問題,你需要檢查目錄是否包含任何文件,然後將第三個參數值設置爲FluentFTP.FtpExists.NoCheck。您的最終調用是:

var count = _client.UploadFiles(filesPaths, remotePath, 
FluentFTP.FtpExists.NoCheck, true); 
相關問題