- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在从 .NET 应用程序中搜索适量(~500)个文件夹来查找大量(~200,000)个文件。
我希望使用DirectoryInfo.GetFiles
,传入SearchOption.AllDirectories
。然而,这种方法似乎比编写我自己的代码来迭代目录并仅传入 searchPattern
执行 GetFiles
慢很多。
相关MSDN info :
GetFiles(String)
GetFiles(String, SearchOption)
有人有过类似的经历吗?
最佳答案
这两个函数实际上因其性能而臭名昭著。原因是GetFiles
遍历整个目录树并构造一个 FileInfo
的数组对象,然后才将结果返回给调用者。所述数组的构造涉及大量内存分配(我确信他们在内部使用 List
,但仍然如此),因为无法提前知道条目数。
如果您真的对性能感兴趣,您可以 P/Invoke FindFirstFile/FindNextFile/FindClose ,将它们抽象为IEnumerable<FileInfo>
和yield
FileInfo
一次一个。
关于.net - 使用 SearchOption.AllDirectories 时 DirectoryInfo.GetFiles 速度缓慢,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1199732/
也许这是设计使然,但我希望 C:\位于我的根目录中,即使我已经知道该信息也是如此。 DirectoryInfo Dinfo = new DirectoryInfo(@"C:\"); Directory
首先,请注意我是 C#、StackOverflow 和一般编程的新手。我在使用 System.IO 中的 Directory.GetFiles 方法时遇到问题。除了 searchOption 重载之外
在目录树(文件夹和所有子文件夹)中搜索文件时,这样做的有效区别是什么: Directory.GetFiles(root, "*", SearchOption.AllDirectories); 并使用
我对 jqgrid 中的 searchoptions 属性有点困惑。当我点击网格中的搜索图标并使用“下拉菜单”遍历字段时,我在 Firefox 和 IE8 中看到以下错误 FF : TypeError
这个问题在这里已经有了答案: UnauthorizedAccessException cannot resolve Directory.GetFiles failure [duplicate] (6
我的代码 DirectoryInfo[] dirstring = dir.GetDirectories(SearchTextbox.Text, System.IO.SearchOption.AllD
我正在从 .NET 应用程序中搜索适量(~500)个文件夹来查找大量(~200,000)个文件。 我希望使用DirectoryInfo.GetFiles,传入SearchOption.AllDirec
我正在使用以下脚本任务来枚举文件目录,然后提取文件列表并将它们加载到记录集目标中。我不想深入到我在搜索中指定的目录@"E:\Data Warehouse\Imports\TIMECLOCK"。 TIM
我是一名优秀的程序员,十分优秀!