如果我有一个文件夹,比如有5个子文件夹,我想在每个子文件夹中搜索某些文件(我的程序存在于主文件夹中)。如何让我的程序在C ++中进出这些文件夹?
我需要我的程序在Windows平台上运行。
谢谢!
答案 0 :(得分:3)
最明显的途径是使用FindFirstFile
和FindnextFile
以及SetCurrentDirectory
。遍历子目录的一种显而易见的方法是使目录遍历例程递归。
答案 1 :(得分:3)
只需使用boost's recursive_directory_iterator,然后过滤所需的文件/目录。
boost::filesystem::recursive_directory_iterator iter("your\path");
boost::filesystem::recursive_directory_iterator end;
for (; iter != end; ++iter) {
// check for things like is_directory(iter->status()), iter->filename() ....
// optionally, you can call iter->no_push() if you don't want to
// enter a directory
// see all the possibilities by reading the docs.
}
答案 2 :(得分:-1)
只需使用堆栈并实施深度优先搜索(请参阅wiki)http://en.wikipedia.org/wiki/Depth-first_search
通过这种方式,您可以(使用尽可能小的堆栈)遍历任何树状结构(并且Windows的文件系统是树状的)。