【发布时间】:2019-02-13 07:13:20
【问题描述】:
我正在尝试读取特定目录中存在的所有文件名。我用 C++ 编写了一个程序,但这只会直接在这个目录中打印文件。我想要子目录中也存在的所有文件。
我用 c++ 编写了一个程序,它打印目录中的文件名,但我也希望子目录中的所有文件名。
#include <stdio.h>
#include <windows.h>
#include <bits/stdc++.h>
#include <dirent.h>
using namespace std;
#include <sys/types.h>
#include <sys/stat.h>
#ifndef WIN32
#include <unistd.h>
#endif
#ifdef WIN32
#define stat _stat
#endif
int main ()
{
DIR *dir;
struct dirent *ent;
if ((dir = opendir ("c:\\test")) != NULL) {
/* print all the files and directories within directory */
while ((ent = readdir (dir)) != NULL) {
printf ("%s\n", ent->d_name);
}
closedir (dir);
} else {
/* could not open directory */
perror ("");
return EXIT_FAILURE;
}
}
实际结果:1.直接打印目录下的文件名,打印子目录名。
预期:我希望程序不打印子目录名称,而是打印该子目录中的文件名。
【问题讨论】:
-
你需要写一个递归函数。这是一个常见的任务,我相信你可以在谷歌上找到答案。
-
@john 谢谢你……但这是为 linux 设计的,我希望它用于 windows ......
-
我的 github 存储库中有相同要求的代码。你可以在这里查看github.com/mshingote/List-of-files-and-folders/blob/master/…