开发者

File/directory search

Any idea how to easily support fil开发者_如何学Ce search patterns in your software, like **, *, ?

For example subfolder/**/?svn - search in all levels of subfolder for files/folders ending in "svn" 4 characters in total.

full description: http://nant.sourceforge.net/release/latest/help/types/fileset.html


If you load the directory as a directory info e.g.

DirectoryInfo directory = new DirectoryInfo(folder);

then do a search for files like this

IEnumerable<FileInfo> fileInfo = directory.GetFiles("*.svn", SearchOption.AllDirectories);

this should get you a list of fileInfo which you can manipulate

to get all subdirectories you can do the same e.g

IEnumerable<DirectoryInfo> dirInfo = directory.GetDirectories("*svn", SearchOption.AllDirectories);

anyway that should give a idea of how i'd do it. Also because fileInfo and dirInfo are IEnumerable you can add linq where queries etc. to filter results


A mix of regex and recursion should do the trick.

Another trick might be to spawn a thread for every folder or set of folders and have the thread proceed checking one more level down. This could be beneficial to speed up the process a bit.

The reason I say this is because that is highly io bound process to check folders etc. So many threads will allow you to submit more disk requests faster thus improving the speed.


This might sound silly, but have you considered downloading the nant source code to see how they did it?

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜