Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.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
VB.NET-获取网络资源中所有文件的列表_Vb.net - Fatal编程技术网

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

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个文件。一个好问题!我曾经遇到过这样的情况:我需要从一个缓

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

Dim searchFolder as string = "\\NAS\Tool files"
My.Computer.FileSystem.GetFiles(searchFolder, FileIO.SearchOption.SearchAllSubDirectories, sp).ToList
有没有更快的办法


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

一个好问题!我曾经遇到过这样的情况:我需要从一个缓慢的网络存储区域迭代近300万个文件,从中读取一些数据,并为每个文件创建数据库文件路径指针。在那个用例中,GetFiles的速度非常慢

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

一个简单的调整是使用.EnumerateFiles(),它有类似的用法,将找到与模式匹配的第一个文件,并在进入下一个文件之前立即开始迭代。更多关于这个

根据每次迭代中执行的操作,您可能希望进入线程领域——这有点高级,但它允许您并行执行操作,从而进一步提高速度


祝你好运

你可以用这个来代替。不要把它作为一个清单来具体化;相反,在循环中使用它。这样你就不必等待整个列表一次返回,但你仍然可以一次处理一个项目。@AndrewMorton-这比我做的要好得多。我最后把文件路径放在一个文本文件中,以便以后读取。我需要做很多,但是(谢天谢地)网络资源现在是静态的。我想我要做的是打开我保存的文件,将它们读入一个数据结构(也许是散列?),然后用它来搜索特定的文件。谢谢