- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
msdn ( https://msdn.microsoft.com/en-us/library/dd383458(v=vs.110).aspx) 说:
EnumerateFiles 和 GetFiles 方法的区别如下:当您使用 EnumerateFiles 时,您可以在返回整个集合之前开始枚举名称集合;使用 GetFiles 时,必须等待返回整个名称数组,然后才能访问该数组。因此,当您处理许多文件和目录时,EnumerateFiles 会更有效率。
如何在整个集合返回之前开始使用集合?
对于包含大约 45000 个文件的目录,以下代码给出了超过 3 分钟的运行时间
Dim TIme1, TIme2 As String
TIme1 = TimeString
Dim DirFiles As Generic.List(Of String) = New Generic.List(Of String)(Directory.EnumerateFiles(SourceDirectory))
Dim NumberOfFiles As Integer
NumberOfFiles = DirFiles.Count()
TIme2 = TimeString
MsgBox("Begin time " & TIme1 & "There are " & NumberOfFiles & " Photos in the Directory ." & SourceDirectory & "End Time " & TIme2)
我是否可以在集合完全读取之前就已经使用 Dirfiles 中的条目?怎么办?
在微软推出 Windows 之前,我曾经是一名专业程序员。我的 Windows 编程经验很少。
最佳答案
虽然您不能很好地利用 EnumerateFiles
返回的文件计数,但您可以使用 For Each
循环立即开始处理集合中的单个文件等等,它的工作不需要元素的数量。
例如你可以这样做:
Dim FileCount As Integer
Dim files = Directory.EnumerateFiles(srcDir)
For Each file in files
'Do something with this file
' e.g.
TextBox1.AppendText(file & vbCrLf)
FileCount += 1
Next
MsgBox ( FileCount.ToString & " files processed.")
那么你知道它是如何使用的了吗?
[注意:徒手输入的代码..可能包含拼写错误。它只是为了解释这个概念。]
关于vb.net - 如何使用 Directory.EnumerateFiles,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31714722/
成员函数DirectoryInfo::EnumerateFiles只能抛出 DirectoryNotFoundException 和 SecurityException 而静态函数 Directory
我正在编写一个程序,当给定日期、文件夹路径和文件扩展名时,该程序将查看文件夹并查找上次访问时间从月初到当前日期的所有文件,并且只有具有传递的文件扩展名的文件。 我要查找的文件始终位于文件夹树中的同一级
我正在使用 EnumerateFiles 获取目录中的所有 *.md: foreach (var mdName in Directory.EnumerateFiles(Path.Combine(Bas
作为一个简化的示例,我正在执行以下操作 IEnumerable files = Directory.EnumerateFiles(path, @"2010*.xml", SearchOptio
根据Microsoft Docs site for Directory.EnumerateFiles ,搜索模式参数将匹配任何以指定模式开头的扩展名,只要它正好是 3 个字符。但是,这不适用于文件共享
.NET 4.0 中有一个很好的新方法,可以通过枚举以流式方式获取目录中的文件。 这里的问题是,如果希望枚举所有文件,则可能无法提前知道哪些文件或文件夹受到访问保护,并且可能会抛出 Unauthori
我想要一个文件夹中所有 xml 文件的列表,如下所示: foreach (var file in Directory.EnumerateFiles(folderPath, "*.xml")) {
在我问的问题中Retrieve a list of filenames in folder and all subfolders quickly还有一些我发现的,似乎搜索许多文件的方法是使用 Enum
所以我正在开发一个程序,它将列出目录中的所有文件。很简单。基本上,当我这样做时:List dirs = new List(Directory.EnumerateFiles(target)); ,我不希
下面的语句有错误,帮忙修正 long siz = dirinfo.EnumerateFiles().Sum(file => file.length); 'System.IO.DirectoryInf
我正在尝试编写一个程序来将我的 SQL 数据库备份文件复制到 NAS。它以前是工作的,但后来我添加了检查路径是否存在,现在当它试图复制文件时它得到一个异常说“System.IO.IOException
我有一个非常罕见的行为。 我正在使用 Windows 10 x64 和 Visual Studio 2013,当我在 32 位应用程序中运行此代码时 Directory.EnumerateFiles(
我目前有一个扫描网络共享的程序。为此,它首先枚举共享上的所有文件和目录。这是一个非常缓慢的过程。我目前使用以下代码,摘自本网站 2011 年的回答。 static class SafeWalk
我有一个包含 2 个文件的目录: 文件1.xls 文件2.xlsx 如果我这样做: directoryInfo.EnumerateFiles("*.xls", SearchOption.TopDire
对于我的 WPF 项目,我必须计算单个目录(可能有子目录)中的总文件大小。 示例 1 DirectoryInfo di = new DirectoryInfo(path); var totalLeng
Directory.EnumerateFiles 方法的默认读取顺序是什么?是否一致? 根据我目前的经验,这似乎是文件创建的日期,但我无法找到对此的确认。 我问的原因是因为我正在处理的程序的一部分将二
我有以下代码: List result = new List(); foreach (string file in Directory.EnumerateFiles(path,"*.*",
在 .NET 4 中,有这个 Directory.EnumerateFiles()看起来很方便的递归方法。 但是,如果在递归中发生异常,我如何继续/恢复并继续枚举其余文件? try { var f
msdn ( https://msdn.microsoft.com/en-us/library/dd383458(v=vs.110).aspx) 说: EnumerateFiles 和 GetFile
我已经阅读了关于 Directory.EnumerateFiles 之间差异的讨论和 Directory.GetFiles . 我知道他们在内部都使用System.IO.FileSystemEnume
我是一名优秀的程序员,十分优秀!