我在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;
}
感谢您的帮助。
答案 0 :(得分:0)
我不懂C#,但是您没有提供所收到错误的确切文本。
以下是应该在您的环境中运行的Powershell脚本:
let visRect = textView.visibleRect
let layoutManager = textView.layoutManager!
let container = textView.textContainer!
let glyphRange = layoutManager.glyphRange(forBoundingRect: visRect, in: container)
let charRange = layoutManager.characterRange(forGlyphRange: glyphRange, actualGlyphRange: nil)