2010-09-30 138 views
1

我正在创建一个程序,我需要搜索FTP服务器并下载与给定正则表达式匹配的所有文件。我该怎么做呢?我可以连接到FTP服务器,但是如何扫描给定路径中的所有文件以匹配正则表达式的文件?在C#.NET的FTP服务器上搜索正则表达式匹配文件的所有文件

我也需要对HTTP服务器执行相同的操作,但我认为这将会更加困难,但我现在坚持要使用FTP服务器。

感谢

+0

哪些类是您使用连接到FTP服务器? – Gimly 2010-09-30 10:43:41

+0

我正在使用FtpWebRequest(使用System.Net),但如果有更简单的替代方案,我不介意更改它。 – Chris 2010-09-30 10:58:01

回答

3

您可以使用它来获取列表

public string[] GetFileList() 
    { 
     string[] downloadFiles; 
     StringBuilder result = new StringBuilder(); 
     FtpWebRequest reqFTP; 
     try 
     { 
      reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri("ftp://" + ftpServerIP + "/")); 
      reqFTP.UseBinary = true; 
      reqFTP.Credentials = new NetworkCredential(ftpUserID, ftpPassword); 
      reqFTP.Method = WebRequestMethods.Ftp.ListDirectory; 
      WebResponse response = reqFTP.GetResponse(); 
      StreamReader 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); 
      reader.Close(); 
      response.Close(); 
      return result.ToString().Split('\n'); 
     } 
     catch (Exception ex) 
     { 
      System.Windows.Forms.MessageBox.Show(ex.Message); 
      downloadFiles = null; 
      return downloadFiles; 
     } 
    } 

,然后使用正则表达式maipulate GetFileList阵列根据自己的需要

+0

太棒了,谢谢:) – Chris 2010-10-01 09:08:35

0

FTP有一个列表(ls)命令 - 使用应该有一个相应的方法的任何库,这将返回文件的列表在当前目录。

您可以匹配这个列表,只检索匹配的文件。

不知道你正在使用的确切库,很难得到更具体的。

相关问题