我正在创建一个程序,我需要搜索FTP服务器并下载与给定正则表达式匹配的所有文件。我该怎么做呢?我可以连接到FTP服务器,但如何扫描给定路径中的所有文件以查找与正则表达式匹配的文件?
我还需要对HTTP服务器做同样的事情,我认为这会更加困难,但我现在仍然坚持使用FTP服务器。
由于
答案 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
)命令 - 您使用的任何库都应该有相应的方法,这将返回当前目录中的文件列表。
您可以匹配此列表,只检索匹配的文件。
在不知道您使用的确切库的情况下,很难更具体。