【发布时间】:2014-06-14 15:46:11
【问题描述】:
我想列出给定目录及其不同子目录中的所有文件。 我发现了一些我修改过的代码,但它执行了一个永无止境的循环,我不明白为什么。
int getdir (string dir, vector<string> &files)
{
DIR *dp;
struct dirent *dirp;
if((dp = opendir(dir.c_str())) == NULL) {
cout << "Error(" << errno << ") opening " << dir << endl;
return errno;
}
while ((dirp = readdir(dp)) != NULL) {
files.push_back(string(dirp->d_name));
string test=dir+"/"+dirp->d_name;
getdir(test,files);
}
closedir(dp);
return 0;
}
我的主要:
int main()
{
string dir = string(".");
vector<string> files = vector<string>();
getdir(dir,files);
for (unsigned int i = 0;i < files.size();i++) {
cout << files[i] << endl;
}
return 0;
}
我该如何解决?
【问题讨论】:
-
你有没有机会从一个目录返回到该目录的某个父目录的符号链接?