在C#.NET中搜索FTP服务器上的正则表达式匹配文件的所有文件

时间:2010-09-30 10:41:50

标签: c# regex ftp

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

我还需要对HTTP服务器做同样的事情,我认为这会更加困难,但我现在仍然坚持使用FTP服务器。

由于

2 个答案:

答案 0 :(得分: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;
        }
    }

然后根据需要使用正则表达式操作GetFileList数组

答案 1 :(得分:0)

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

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

在不知道您使用的确切库的情况下,很难更具体。