VB.NET-获取网络资源中所有文件的列表

时间:2018-07-07 18:19:04

标签: vb.net

使用VB.NET,我需要获取网络(NAS)文件夹中所有文件的列表。这似乎真的很慢:

Dim searchFolder as string = "\\NAS\Tool files"
My.Computer.FileSystem.GetFiles(searchFolder, FileIO.SearchOption.SearchAllSubDirectories, sp).ToList

有更快的方法吗?

编辑:我应该提到网络资源有超过100,000个文件。

1 个答案:

答案 0 :(得分:0)

一个好问题!我一直处在需要从一个缓慢的网络存储区域迭代近300万个文件,从其中读取一些数据并为每个文件创建数据库文件路径指针的情况。在该用例中,GetFiles的速度过慢。

.GetFiles()的问题在于,它会在开始迭代之前先执行整个检索。

一个简单的调整就是使用具有相同用法的 .EnumerateFiles(),它将找到与模式匹配的第一个文件,并在移至下一个之前立即开始迭代。有关here的更多信息。

根据您在每次迭代中执行的操作,您可能希望迈入线程领域-这有点先进,但可以并行执行操作,从而提高了速度收获。

祝你好运!