Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用FTP获取基于模式匹配的文件列表?_C#_.net_Ftp - Fatal编程技术网

C# 如何使用FTP获取基于模式匹配的文件列表?

C# 如何使用FTP获取基于模式匹配的文件列表?,c#,.net,ftp,C#,.net,Ftp,我需要从FTP服务器获取文件列表 FTP服务器有超过10000个文件 我只需要以ABC开头的文件…(大约10个文件)。 但每10分钟就会添加一次新文件 因此,我只需要获取在过去10分钟内创建的以ABC开头的文件 我如何做到这一点?我可以从C#本地完成这项工作吗 到目前为止,我看到的是,我可以连接到FTP服务器,获取所有文件的列表,并检查每个文件的名称。。。如果文件数量增加,这似乎需要很长时间 Ta一般来说,除了您知道的方法之外,没有其他方法:检索所有文件的列表并在本地进行筛选 但许多服务器支持

我需要从FTP服务器获取文件列表

FTP服务器有超过10000个文件

我只需要以ABC开头的文件…(大约10个文件)。 但每10分钟就会添加一次新文件

因此,我只需要获取在过去10分钟内创建的以ABC开头的文件

我如何做到这一点?我可以从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服务器支持模式的部分列表,请参阅我的答案。

如果我是你,我会在某处安装一个小控制台应用程序,它每10分钟调用一次FTP服务器,并用文件名更新JSON文件甚至数据库。这意味着您可以通过应用程序查询JSON文件或数据库,而无需担心速度。这就是我对上述许多问题所采用的方法。是的,你上面所说的一切都可以用c#实现,而且不会太复杂。。如果你需要帮忙或有任何代码要显示,请喊我一声!乔希-非常感谢你。。。我感谢你的帮助