如何遍历目录?
如果我有一个包含 5 个子文件夹的文件夹,并且我想在每个子文件夹内搜索某些文件(我的程序位于主文件夹内)。如何让我的程序在 C++ 中遍历这些文件夹?
我需要我的程序在 Windows 平台上运行。
谢谢!
If I have a folder that has, say, 5 sub-folders, and I want to search for certain files inside each sub-folder(my program is present inside the main folder). How do I make my program traverse into and out of those folders in C++?
I need my program to run on Windows platforms.
Thanks!
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
最明显的途径是使用
FindFirstFile
和FindnextFile
以及SetCurrentDirectory
。遍历子目录的一种明显方法是使目录遍历例程递归。The most obvious route is to use
FindFirstFile
andFindnextFile
, along withSetCurrentDirectory
. One obvious way to traverse the subdirectories is to make your directory traversal routine recursive.只需使用 boost 的 recursive_directory_iterator,然后过滤你想要的文件/目录。
Just use boost's recursive_directory_iterator, and filter the files/directory you want.
只需使用堆栈并实现深度优先搜索(参见 wiki)http://en.wikipedia。 org/wiki/Depth-first_search
这样你就可以(使用尽可能小的堆栈)遍历任何树状结构(Windows 的文件系统是树状的)。
Just use a stack and implement Depth-First-Search (see wiki) http://en.wikipedia.org/wiki/Depth-first_search
This way you can (with a small as possible stack) traverse any tree like structure (and Windows' file system is tree-like).