2012-12-21 155 views
0

我正在尋找一種方法,如果可能的話,連接到FTP服務器,然後遍歷本地文件列表以檢查它們在服務器上的存在。現在,我發現:檢查FTP服務器上是否存在文件列表

var request = (FtpWebRequest)WebRequest.Create("ftp://ftp.domain.com/doesntexist.txt"); 

request.Credentials = new NetworkCredential("user", "pass"); 
request.Method = WebRequestMethods.Ftp.GetFileSize; 

try 
{ 
    var response = (FtpWebResponse)request.GetResponse(); 
} 
catch (WebException ex) 
{ 
    var response = (FtpWebResponse)ex.Response; 
    if (response.StatusCode == FtpStatusCode.ActionNotTakenFileUnavailable) 
    { 
     //Does not exist 
    } 
} 

但是,如果我沒有理解錯的(我還沒有我的咖啡還),它會爲每個文件WebRequest。總體目標是檢查這些文件是否存在,如果不存在,請上傳它們。我的問題是,我是否需要單獨做這件事,或者是否有可能(甚至是可行的)連接到FTP一次,然後進行檢查/上傳?

+0

你可以得到FTP服務器上的文件的列表('ftpRequest.Method = WebRequestMethods.Ftp.ListDirectoryDe​​tails;')和比較,爲本地文件。然後根據需要傳輸本地文件,每個連接一個。 – HABO

回答

2

1)從FTP獲取文件列表所描述here

2)使用Directory.GetFiles()

3)環通過一個列表獲取的本地文件的列表,並檢查其他列表包含該項目

相關問題