使用复杂模式搜索目录中的文件
-
03-07-2019 - |
题
我正在寻找一个 C# 库,用于使用像 Ant 中使用的复杂模式从目录中获取文件或目录:
dir1/dir2/**/SVN/*
--> 匹配 SVN 目录中位于 dir1/dir2 目录树中任意位置的所有文件**/test/**
--> 匹配路径中包含 test 元素的所有文件,包括 test 作为文件名。- ...
我需要自己编码吗?从 NAnt 中提取我想要的东西?或者这个库存在,但我的谷歌技能很糟糕。
Directory.GetFiles(String path, String searchPattern)
不处理目录模式并且 NDepend.Helpers.FileDirectoryPath 都不是(顺便说一下,它是一个很棒的路径操作库)
解决方案
自己编码不会那么难。
只需使用正确制定的正则表达式和 System.IO 方法即可构建完整路径
其他提示
您是否愿意将“*”定义为“除斜杠之外的任何内容”,将“**”定义为“任何内容”?如果是这样,正则表达式转换似乎很简单。
* -> [^\/]*
** -> .*
然后就是递归枚举所有文件,并检查它们的路径是否与正则表达式匹配。
不隶属于 StackOverflow