- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想使用递归查找目录结构中的所有 excel 文件。问题是,Directory.GetFiles 中使用的搜索模式一次只允许一个扩展名。
有没有人知道解决这个问题的方法,或者我是否必须多次递归目录以寻找特定的扩展?或者您可以只抓取每个文件,然后遍历该列表以查找特定的扩展名。这两种方式听起来都有些低效。
谢谢
最佳答案
在 .NET 中每个版本都有 SearchOption.TopDirectoryOnly 和 SearchOption.AllDirectories
在 .NET 4 中,您可以非常高效做例如:
var regex = new Regex(@"\d+", RegexOptions.Compiled);
var files = new DirectoryInfo(topdir)
.EnumerateFiles("*.*", SearchOption.AllDirectories)
.Where(fi => regex.IsMatch(fi.Name));
(此示例过滤名称中包含两位数字的文件)
为了模拟这一点,编写一个递归枚举器方法(yield return)来返回所有文件,并像这样过滤结果:
IEnumerable<FileInfo> Recurse(string topdir)
{
// for each GetFiles() array element
// if is_not_dir yield return
// else Recurse(subdir)
}
var filtered = Recurse.Where(fi => regex.IsMatch(fi.Name));
HTH
关于使用 Directory.GetFiles 和搜索模式的 C# 递归目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5512013/
我写了一些代码来获取目录中的文件。为此,我使用了 Directory.GetFiles 方法。我以前用过它,所以我知道它存在并且有效。 所以我开始使用它(我正在使用 System.IO 命名空间),它
System.IO.Directory.GetFiles() 返回一个string[]。返回值的默认排序顺序是什么?我是按名字假设的,但如果是的话,当前的文化对其影响有多大?您可以将其更改为创建日期之
这个问题在这里已经有了答案: Exact file extension match with GetFiles()? (8 个答案) 关闭 4 年前。 我需要获取指定文件夹的所有子文件夹中的所有 .
我在一个临时文件夹中有几个文件。我可以使用以下脚本将它们加载到 Photoshop 中: var sourceFolder = Folder("C:\\temp"); if (sourceFo
我尝试在 ImageJ 插件中使用 java.awt.FileDialog,但由于某种原因,我收到一个错误,指出 Java 找不到 getFiles 方法: C:\File_Opener3.java:
我需要每天从网络驱动器复制文件。为此,我尝试了以下方法: var dir = new DirectoryInfo(@"Z:\"); var filesA300 = dir.GetFil
使用下面的代码,我能够获取名称中包含 string 的所有文件: DirectoryInfo dirInf = new DirectoryInfo(path); FileInfo[] fInfArra
是否有更有效的方法来从带有日期过滤器的目录中填充文件名列表? 目前,我正在这样做: foreach (FileInfo flInfo in directory.GetFiles()) { Da
这个问题在这里已经有了答案: 关闭 10 年前。 Possible Duplicate: Can you call Directory.GetFiles() with multiple filter
我有这个基本代码 Directory.GetFiles(filepath, "*.OUT") 文件路径中有一个名为 Filename.OUT 的文件。 上面的代码可以很好地找到该文件。 现在,我通过附
我有一个包含 2 个子文件夹的文件夹,每个子文件夹包含大约 1000 个文件。这些文件如下所示: 38485303_SARA_N211_T.ygx 38485303_SARA_N211_B.ygx 3
TDirectory.GetFiles 有一个名为 SearchPattern 的参数。 Embarcadero 的文档显示 The mask used when matching file name
我正在使用 Directory.GetFiles 从特定文件夹中获取文件。默认情况下,该文件夹中的文件将按文件名排序,即。按文件名的字母顺序排列。我想按照文件修改的顺序获取文件。 我无法使用 Dire
我正在尝试实现一种将文件上传到特定本地目录的方法。 我认为: 这是在我的 Controller 操作中: def upload(){ def f
我正在实现带有输入字段和文件上传的简单表单。我浏览了教程:http://grails.org/Simple+Avatar+Uploader和文档:http://grails.org/doc/2.0.x
我在运行 System.IO.Directory.GetFiles("my_directory_name_on_network")并且对大多数 11320 来说都很好目录中的文件,但其中一个在那里两次
我在以下代码段中遇到行为差异 DirectoryInfo di = new DirectoryInfo("c:\"); FileInfo[] textFiles = di.GetFiles("log_
我有以下代码: private string[] FindExistingDocuments() { string supportedImageFormats = "jpg,pdf,doc,d
我想计算文件夹中具有特定扩展名且大小超过 X kb 的文件数。任何人都可以帮忙解决这个问题吗? 我可以做扩展部分: Directory.GetFiles("c:\\temp\\", "*.txt",
我想使用 Directory.GetFiles 从文件夹中读取文件。从msdn网站我发现:对于c,我包括: using System; using System.IO; 对于 C++,我包括: #us
我是一名优秀的程序员,十分优秀!