我在想有没有一种好的方法来扫描一个包含你不确定字符的目录。
例如,我想扫描
C:\Program\Version2.*\Files
意思是:
- 该文件夹位于
C:\Program
Version2.*
可以是任何东西,比如Version2.33
,Version2.1
等等- 该文件夹中有一个名为
Files
的文件夹
我知道我可以做一些像 foreach (directory) if contains("Version2.")
这样的事情,但我想知道是否有更好的方法。
我在想有没有一种好的方法来扫描一个包含你不确定字符的目录。
例如,我想扫描
C:\Program\Version2.*\Files
意思是:
C:\Program
Version2.*
可以是任何东西,比如 Version2.33
,Version2.1
等等Files
的文件夹我知道我可以做一些像 foreach (directory) if contains("Version2.")
这样的事情,但我想知道是否有更好的方法。
Directory.EnumerateDirectories 接受搜索模式。因此,首先枚举具有通配符的父级,然后枚举其余部分:
var directories =
Directory.EnumerateDirectories(@"C:\Program\", "Version2.*")
.SelectMany(parent => Directory.EnumerateDirectories(parent,"Files"))
试试这个
var pattern = new Regex(@"C:\\Program\\Version 2(.*)\\Files(.*)");
var directories = Directory.EnumerateDirectories(@"C:\Program", "*",
SearchOption.AllDirectories)
.Where(d => pattern.IsMatch(d));
*
通配符。 - default