我需要从 FTP 服务器获取文件列表。
FTP 服务器有超过 10, 000 个文件。
我只需要以以下开头的文件ABC...
(相当于 10 个文件)。
但每 10 分钟就会添加新文件。
所以我只需要获取以ABC
过去 10 分钟内创建的。
我该如何实现这一目标?我可以从 C# 本地执行此操作吗?
到目前为止我所看到的,我可以连接到 FTP 服务器,获取所有文件的列表并检查每个文件的名称...如果文件数量增加,这似乎需要很长时间...
Ta
一般来说,除了您所知道的方法之外,没有其他方法:检索所有文件的列表并在本地过滤它们。
但许多服务器支持列表的非标准/专有过滤。
如果您幸运并且您的 FTP 服务器确实支持此功能,则您可以使用文件掩码来仅检索文件的子集。在你的情况下,面具通常会喜欢ABC*
。大多数主要 FTP 服务器都支持*
图案。
FtpWebRequest request =
(FtpWebRequest)WebRequest.Create("ftp://ftp.example.com/remote/path/ABC*");
request.Credentials = new NetworkCredential("username", "password");
request.Method = WebRequestMethods.Ftp.ListDirectory;
FtpWebResponse response = (FtpWebResponse)request.GetResponse();
Stream responseStream = response.GetResponseStream();
StreamReader reader = new StreamReader(responseStream);
Console.WriteLine(reader.ReadToEnd());
有关常见 FTP 服务器支持模式的部分列表,请参阅我的回答带通配符的 FTP 目录部分列表 https://stackoverflow.com/q/9282753/850848#28187442.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)