任何想法如何轻松支持软件中的文件搜索模式,如**,*,?
例如子文件夹/ ** /?svn - 在所有级别的子文件夹中搜索以“svn”结尾的文件/文件夹共4个字符。
完整说明:http://nant.sourceforge.net/release/latest/help/types/fileset.html
答案 0 :(得分:2)
如果您将目录加载为目录信息,例如
DirectoryInfo directory = new DirectoryInfo(folder);
然后搜索这样的文件
IEnumerable<FileInfo> fileInfo = directory.GetFiles("*.svn", SearchOption.AllDirectories);
这应该会为您提供一个可以操作的fileInfo列表
获取所有子目录,你可以做同样的事情,例如
IEnumerable<DirectoryInfo> dirInfo = directory.GetDirectories("*svn", SearchOption.AllDirectories);
无论如何,应该知道我是如何做到的。另外,因为fileInfo
和dirInfo
是IEnumerable,您可以在查询等处添加linq来过滤结果
答案 1 :(得分:1)
正则表达式和递归的混合应该可以解决问题。
另一个技巧可能是为每个文件夹或一组文件夹生成一个线程,让线程再继续检查一个级别。这可能有利于加快这一过程。
我说这个的原因是因为这是一个高度io绑定的过程来检查文件夹等。这么多线程将允许您更快地提交更多的磁盘请求,从而提高速度。
答案 2 :(得分:0)
这可能听起来很愚蠢,但您是否考虑下载nant源代码以了解他们是如何做到的?