【发布时间】:2012-10-29 20:43:52
【问题描述】:
我正在尝试编写一个函数,该函数返回当前文件夹及其所有子文件夹中所有文件的列表。我写了这段代码:
#include <iostream>
#include <dirent.h>
#include <cstring>
using namespace std;
int main() {
DIR* dir; dirent* pdir;
//From my workspace
dir=opendir(".");
while (pdir=readdir(dir)) {
if(/**********This pdir is a directory**********/) {
/**********RECURSIVE CALL SHOULD BE HERE**********/
cout<<pdir->d_name<<endl;
}
}
closedir(dir);
return 0;
}
我在谷歌上搜索过,但我不知道如何:
- 检查当前
pdir是否为目录 - 进入目录并对其执行递归调用
与此同时,我在 main 上拥有一切,因为我仍然不知道递归函数应该有哪些参数。
有什么提示吗?
【问题讨论】:
-
适用于什么平台? 编辑:按什么顺序?预购、订购还是后购?
-
第一个问题查看stackoverflow.com/questions/3844546/…,第二个问题查看msdn.microsoft.com/en-us/library/windows/desktop/… 或posix 调用“chdir(2)”
-
我不关心顺序,只要我能列出所有文件。
-
请注意,可能不递归调用
main()。 -
看看这个boost filesystem 教程。你当然需要图书馆。
标签: c++