VB.NET-获取网络资源中所有文件的列表
使用VB.NET,我需要获得网络(NAS)文件夹中所有文件的列表。这似乎很慢:VB.NET-获取网络资源中所有文件的列表,vb.net,Vb.net,使用VB.NET,我需要获得网络(NAS)文件夹中所有文件的列表。这似乎很慢: Dim searchFolder as string = "\\NAS\Tool files" My.Computer.FileSystem.GetFiles(searchFolder, FileIO.SearchOption.SearchAllSubDirectories, sp).ToList 有没有更快的办法 编辑:我应该提到网络资源有超过100000个文件。一个好问题!我曾经遇到过这样的情况:我需要从一个缓
Dim searchFolder as string = "\\NAS\Tool files"
My.Computer.FileSystem.GetFiles(searchFolder, FileIO.SearchOption.SearchAllSubDirectories, sp).ToList
有没有更快的办法
编辑:我应该提到网络资源有超过100000个文件。一个好问题!我曾经遇到过这样的情况:我需要从一个缓慢的网络存储区域迭代近300万个文件,从中读取一些数据,并为每个文件创建数据库文件路径指针。在那个用例中,GetFiles的速度非常慢 .GetFiles()的问题是,它在开始迭代之前先执行整个检索 一个简单的调整是使用.EnumerateFiles(),它有类似的用法,将找到与模式匹配的第一个文件,并在进入下一个文件之前立即开始迭代。更多关于这个 根据每次迭代中执行的操作,您可能希望进入线程领域——这有点高级,但它允许您并行执行操作,从而进一步提高速度
祝你好运 你可以用这个来代替。不要把它作为一个清单来具体化;相反,在循环中使用它。这样你就不必等待整个列表一次返回,但你仍然可以一次处理一个项目。@AndrewMorton-这比我做的要好得多。我最后把文件路径放在一个文本文件中,以便以后读取。我需要做很多,但是(谢天谢地)网络资源现在是静态的。我想我要做的是打开我保存的文件,将它们读入一个数据结构(也许是散列?),然后用它来搜索特定的文件。谢谢