2013-11-14 4 views
0

Я хочу получить список файлов с FTP-сервера с определенным шаблоном поиска (например: получить все файлы с шаблоном как «* .txt») и загрузить эти файлы только используя C# .net.Получить список файлов с FTP-сервера с определенным шаблоном поиска

Ниже приведен код, возвращающий список файлов с FTP-сервера, пожалуйста, предложите код добавления, необходимый для выполнения требуемой задачи.

  FtpWebRequest reqFTP; 
      reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + coldata.Host + "/")); 

      //("ftp://" + coldata.host + "/")); 
      reqFTP.UseBinary = true; 
      reqFTP.Credentials = new NetworkCredential(coldata.Uid, coldata.Pwd); 
      reqFTP.Method = WebRequestMethods.Ftp.ListDirectory; 
      reqFTP.Timeout = System.Threading.Timeout.Infinite; 
      reqFTP.Proxy = null; 
      reqFTP.KeepAlive = true; 
      reqFTP.UsePassive = true; 
      FtpWebResponse res = (FtpWebResponse)reqFTP.GetResponse(); 
      response = reqFTP.GetResponse(); 
      reader = new StreamReader(response.GetResponseStream()); 
      string line = reader.ReadLine(); 
      while (line != null) 
      { 
       result.Append(line); 
       result.Append("\n"); 
       line = reader.ReadLine(); 
      } 
      // to remove the trailing '\n' 
      result.Remove(result.ToString().LastIndexOf('\n'), 1); 
      downloadRes = true; 
      return result.ToString().Split('\n'); 

Спасибо.

ответ

1

Вы можете использовать System.IO.Path.GetExtension, что-то вроде этого, может быть:

while (line != null) 
{ 
    if (System.IO.Path.GetExtension(line) == "txt") 
    { 
     result.Append(line); 
     result.Append("\n"); 
     line = reader.ReadLine(); 
    } 
} 

Не совсем то, что вы просили, но вы не можете указать шаблоны поиска по FTP, смотрите здесь:

how to fetch a range of files from an FTP server using C#

+0

@ code4life Приведите пример, потому что стандарт FTP не поддерживает его, и несколько разных ftp-серверов, которые я тестировал, не работают. – Ashigore

Смежные вопросы