我在 FTP 服务器上有一个包含大约 2,000,000 个文件的目录。此 FTP 服务器是基于 Linux 的。我想列出这个目录中的文件(文件名带有最后修改日期),但是 Filezilla 和 Core FTP Pro 都做不到,并且列表操作会失败。我尝试使用 FTPWebRequest 类在 C# 中编写我自己的应用程序并运行 ListDirectory 方法,但它也无法列出目录中的文件并且 ftpwebrequest 超时。
有没有办法使用任何协议(例如 FTP、SMB、...)甚至通过执行 bash 脚本来列出目录中这么多文件的名称?
C#中列出目录的函数是:
public static List<string> ListFtpDirectory(string address, string userName, string password)
{
List<string> filesName = new List<string>();
try
{
FtpWebRequest request = (FtpWebRequest) WebRequest.Create(address);
request.Method = WebRequestMethods.Ftp.ListDirectory;
request.Credentials = new NetworkCredential(userName, password);
request.UsePassive = true;
using (FtpWebResponse response = (FtpWebResponse) request.GetResponse())
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
filesName =
reader.ReadToEnd().Split(new string[] {"\r\n"}, StringSplitOptions.RemoveEmptyEntries).ToList();
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
return filesName;
}
任何帮助表示赞赏。