问题描述
我在搜索文件夹并找到具有特定名称的所有文件时遇到问题。 使用这种方法,我可以浏览我的文件夹并找到所有文件。但仅限 Word 文件。
Dim fi As FileInfo() = path.GetFiles(fileName & "*.doc*",SearchOption.AllDirectories)
现在我想搜索Word 和PDF。有什么办法可以找到它吗? 如果我只写一个点而不是 .doc 它会搜索文件夹但找到所有文件。 Excel、txt 等
Dim fi As FileInfo() = path.GetFiles(fileName & "*.*",SearchOption.AllDirectories)
目标是只找到特定类型的文件。
解决方法
无法使用 GetFiles 方法枚举具有多个扩展名的文件。为此,您必须编写自己的代码来进行过滤。我还建议您使用 EnumerateFiles
方法,因为在大多数情况下,它比 GetFiles
方法提供更好的性能。
这是根据需要进行过滤的示例代码
Dim filterExtensions = {".docx",".pdf"}
Dim files = From f In System.IO.Directory.EnumerateFiles("C:\Path","*.*",_
SearchOption.AllDirectories)
Let fi = New FileInfo(f)
Where filterExtensions.Contains(fi.Extension.ToLower())
Select fi