ファイルリストを取得するためにディレクトリに 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;
}
}