任何人都可以告诉我如何在给定文件夹中找到说* .txt文件,其中结构中有子文件夹 12345 \ 30123 \ 128 \ txt \ 100.txt ,主文件夹可以包含其他子文件夹或txt文件,但我只想获取位于格式 12345 \ 30123 \ 128 \ txt \ 100.txt 的子文件夹中的txt文件。即所有 txt 文件夹中的txt文件
我试过这个:
Dim txtFilesArray As String() = Directory.GetFiles(targetDirectory, "*.txt", SearchOption.AllDirectories)
但它获取所有txt文件?
答案 0 :(得分:1)
Dim txtFiles = Directory.EnumerateFiles(targetDirectory,"*.txt",SearchOption.AllDirectories)
.Where(Function(f) f Like "*\#*\#*\#*\txt\#*.txt")
其中#
匹配0到9之间的任何数字,*
匹配任何0个或更多字符
或更慢的RegEx
版本将类似于
Dim txtFiles = Directory.EnumerateFiles(targetDirectory,"*.txt",SearchOption.AllDirectories)
.Where(Function(f) RegEx.IsMatch(f, ".*\\\d+\\\d+\\\d+\\txt\\\\d+\.txt"))
For Each txtFile In txtFiles
'...
Next
答案 1 :(得分:0)
这将返回path
所包含的所有文件:
Dim path = "C:\"
Dim di As New DirectoryInfo(path)
Dim files = di _
.GetFiles("*.txt", SearchOption.AllDirectories) _
.Where(Function(info) info.DirectoryName <> path) _
.Select(function(info) info.FullName) _
.ToArray()