我正在创建一个需要 FTP 到目录以检索文件列表的 C# 应用程序。下面的代码工作得很好。但是,我要通过 FTP 访问的文件夹包含大约 92,000 个文件。对于该大小的文件列表,此代码不会以我希望的方式工作。
我只寻找以字符串“c-”开头的文件。在做了一些研究之后,我什至不知道如何开始尝试解决这个问题。有什么办法可以修改这个现有的代码,让它只检索那些文件?
public string[] getFileList() {
string[] downloadFiles;
StringBuilder result = new StringBuilder();
FtpWebRequest reqFTP;
try {
reqFTP = (FtpWebRequest)FtpWebRequest.Create(new Uri(ftpHost));
reqFTP.UseBinary = true;
reqFTP.Credentials = new NetworkCredential(ftpUser, ftpPass);
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;
}
}