C#如何有效地列出ftp服务器上的目录

C#如何有效地列出ftp服务器上的目录,c#,list,ftp,directory,C#,List,Ftp,Directory,我需要从ftp服务器获取特定格式文件的文件列表内容。我必须通读所有目录和文件,检查它是否是或包含我需要的文件,然后将该文件添加到我的文件列表中。然而,ftp服务器中有如此多的目录、子目录和各种文件,这样做将非常耗时。有人知道如何使它更省时吗?既然您提到了不同机器的目录路径不同,那么您需要收集所有机器和目录路径。您需要遍历目录路径。不幸的是,您需要遍历每个文件(排除不需要的文件)。下面是一个伪代码- loop for each directory paths loop for each f

我需要从ftp服务器获取特定格式文件的文件列表内容。我必须通读所有目录和文件,检查它是否是或包含我需要的文件,然后将该文件添加到我的文件列表中。然而,ftp服务器中有如此多的目录、子目录和各种文件,这样做将非常耗时。有人知道如何使它更省时吗?

既然您提到了不同机器的目录路径不同,那么您需要收集所有机器和目录路径。您需要遍历目录路径。不幸的是,您需要遍历每个文件(排除不需要的文件)。下面是一个伪代码-

loop for each directory paths
    loop for each files in a directory paths by excluding unwanted files types
         store the required files in a collection
    end loop
end loop
return files
您可以使用并行for循环(TPL in.Net)来更快地执行循环。参考-


您想要的是以特定格式获取目录中的所有文件,即
.txt
?为什么FTP站点让它变得如此困难?要求网站管理员登录一个文件夹,让他们把你的文件放在那里。通常那些需要“通读所有目录”以获取“特定格式的文件”的人都在做一些事情…是的,我需要的所有特定文件应该只在一个目录中,不幸的是,目录的路径因不同的机器而异,因此我们无法硬编码目录的路径,并且需要搜索服务器中的所有目录和文件。我们为半导体行业的客户工作,他们的ftp站点可能具有不同的结构。然后,您可以将目录路径放入App.Config。然后在您的程序中读取它,并在您的路径中
GetFiles
,因为有不同的客户,我们现在不可能收集所有机器的所有路径。然而,您建议的并行for循环在某种程度上也可能有所帮助,我需要做更多的研究。谢谢