使用子文件夹查找给定文件夹中的txt文件?

时间:2016-08-28 03:51:37

标签: vb.net

任何人都可以告诉我如何在给定文件夹中找到说* .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文件?

2 个答案:

答案 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()
相关问题