vb.net – 枚举包括子文件夹在内的所有文件的快速方法

vb.net – 枚举包括子文件夹在内的所有文件的快速方法,第1张

概述有没有人知道更快的方法来枚举目录和子文件夹来收集枚举中的所有文件?这就是我现在所拥有的: Public Shared allFiles() As StringallFiles = Directory.GetFiles(<ServerLocation>, "*.*", SearchOption.AllDirectories) 谢谢! JFV 编辑:我从服务器位置枚举这些文件.我不知道这是否会改变这 有没有人知道更快的方法来枚举目录和子文件夹来收集枚举中的所有文件?这就是我现在所拥有的:

Public Shared allfiles() As Stringallfiles = Directory.Getfiles(<ServerLocation>,"*.*",SearchOption.AllDirectorIEs)

谢谢!
JFV

编辑:我从服务器位置枚举这些文件.我不知道这是否会改变这个问题的观点.感谢所有输入到目前为止!

解决方法 简短回答:

如果此代码在功能上对您的项目是正确的,并且您没有证明它是分析器的问题,那么请不要更改它.继续使用功能正确的解决方案,直到证明它很慢.

答案很长:

这段特定代码的速度或速度有多快取决于很多因素.其中许多将取决于您运行的特定计算机(例如硬盘驱动器速度).查看涉及文件系统的代码而不是其他内容,很难说“x比y更快”,具有任何确定性.

在这种情况下,我只能评论一件事.此方法的返回类型是fileInfo值的数组.数组需要连续的内存,非常大的数组可能会导致堆中的碎片问题.如果您正在阅读非常大的目录,则可能导致堆碎片化和间接性能问题.

如果这是一个问题,那么你可以PInvoke到FindFirstfile / FindNextfile并一次获取一个.结果可能在cpu周期中功能较慢,但内存压力较小.

但我必须强调,在修复它们之前,你应该证明这些是问题.

@H_419_38@ 总结

以上是内存溢出为你收集整理的vb.net – 枚举包括子文件夹在内的所有文件的快速方法全部内容,希望文章能够帮你解决vb.net – 枚举包括子文件夹在内的所有文件的快速方法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1236044.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-06
下一篇 2022-06-06

发表评论

登录后才能评论

评论列表(0条)

保存