我正在创建一个程序,我需要搜索FTP服务器并下载与给定正则表达式匹配的所有文件。我该怎么做呢?我可以连接到FTP服务器,但是如何扫描给定路径中的所有文件以匹配正则表达式的文件?在C#.NET的FTP服务器上搜索正则表达式匹配文件的所有文件
我也需要对HTTP服务器执行相同的操作,但我认为这将会更加困难,但我现在坚持要使用FTP服务器。
感谢
我正在创建一个程序,我需要搜索FTP服务器并下载与给定正则表达式匹配的所有文件。我该怎么做呢?我可以连接到FTP服务器,但是如何扫描给定路径中的所有文件以匹配正则表达式的文件?在C#.NET的FTP服务器上搜索正则表达式匹配文件的所有文件
我也需要对HTTP服务器执行相同的操作,但我认为这将会更加困难,但我现在坚持要使用FTP服务器。
感谢
您可以使用它来获取列表
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阵列根据自己的需要
太棒了,谢谢:) – Chris 2010-10-01 09:08:35
FTP有一个列表(ls
)命令 - 使用应该有一个相应的方法的任何库,这将返回文件的列表在当前目录。
您可以匹配这个列表,只检索匹配的文件。
不知道你正在使用的确切库,很难得到更具体的。
哪些类是您使用连接到FTP服务器? – Gimly 2010-09-30 10:43:41
我正在使用FtpWebRequest(使用System.Net),但如果有更简单的替代方案,我不介意更改它。 – Chris 2010-09-30 10:58:01