我正在编写一个软件工具,作为其主要任务的一部分,它必须在目录及其子目录中搜索具有给定名称的目录,并将每个以指定目录名称结尾的文件路径保存到字符串数组中。例如:
级别_1 级别_2 级别_3 RootDirectory ---> 文件夹A ---> 文件夹D ---> 文件夹F ---> 目标 | |---> 文件夹E ---> 目标 | |---> 文件夹B ---> 目标 | |---> 文件夹C ---> 目标
应该抽出:
string[] = {RootDirectory\folderA\FolderD\folderF\Target,
RootDirectory\folderA\folderE\Target,
Rootdirectory\folderB\Target,
RootDirectory\foderC\Target}
最初我getDirectories(myPath, "Target", SearchOption.AllDirectories)
在目录信息对象上使用,但出现了问题。出于某种原因,它会在文件夹 b 和 c 下以及文件夹 A>folderD>folderF 下找到目标,但会跳过 FolderE。一旦它在子目录文件夹 A 中找到第一个匹配项,它将继续到 level_1 的下一个文件夹。我应该提到,在我的真实案例中,folderD 实际上是按字母顺序排列在 folderE 之前的,就像在这个例子中一样
因此,我决定使用IEnumerator
并运行 where 过滤器来选择以给定目录名称终止的文件。这让他们都找到了。但是,我无法弄清楚如何getDirectories().Where(x=>(x.attributes & fileattributes.hidden)==0);
在IEnumerator
.
问题是,我需要它跳过隐藏的 SVN 目录,因为它大大减慢了进程。
所以这是我的问题:如何获取子目录中以给定目录名称结尾的所有路径的集合,并从搜索中排除隐藏文件?