使用复杂模式在目录中搜索文件

时间:2008-10-01 16:20:02

标签: c# search file design-patterns

我正在寻找一个C#库,用于使用像Ant中使用的复杂模式从目录中获取文件或目录:

  • dir1/dir2/**/SVN/* - >匹配位于dir1 / dir2
  • 目录树中任何位置的SVN目录中的所有文件
  • **/test/** - >匹配路径中包含测试元素的所有文件,包括test作为文件名。
  • ...

我需要自己编码吗?从NAnt中提取我想要的东西?或者这个库存在,我的谷歌技能很糟糕。

Directory.GetFiles(String path, String searchPattern)不处理目录模式,NDepend.Helpers.FileDirectoryPath也不处理(顺便说一下,这是一个很棒的路径操作库)

2 个答案:

答案 0 :(得分:1)

自己编码不会那么难。

只需使用System.IO方法正确配置的正则表达式来构建完整路径

答案 1 :(得分:-1)

你是否习惯将“*”定义为“除了斜线之外的任何东西”而将“**”定义为“任何东西”?如果是这样,正则表达式转换似乎很简单。

*   -> [^\/]*
**  -> .*

然后是递归枚举所有文件,并检查它们的路径是否与正则表达式匹配。