2012-12-21 150 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)环通过一个列表获取的本地文件的列表,并检查其他列表包含该项目

相关问题