如果我有一个文件夹,有5个子文件夹,我想search每个子文件夹(我的程序存在于主文件夹内)中的某些文件。 如何使我的程序遍历C ++中的文件夹?
我需要我的程序在Windows平台上运行。
谢谢!
用fts遍历文件系统(3)
在C中使用fts_children()的意外结果
Bash:如何遍历目录结构并执行命令?
最明显的路线是使用FindFirstFile和FindnextFile ,以及SetCurrentDirectory 。 遍历子目录的一个显而易见的方法是让你的目录遍历例程递归。
只需使用boost的recursive_directory_iterator ,并过滤所需的文件/目录。
boost::filesystem::recursive_directory_iterator iter("yourpath"); 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. }
只需使用堆栈并实现深度优先搜索(请参见wiki) http://en.wikipedia.org/wiki/Depth-first_search
这样你可以(尽可能小的堆栈)遍历任何树状结构(而Windows的文件系统是树状的)。