我正在尝试递归获取目录的所有文件和子文件夹。这是我到目前为止所拥有的。
#include <iostream>
#include "dirent.h"
#include <io.h>
using namespace std;
void listDir(char *directory)
{
DIR *dir;
struct dirent *ent;
if((dir = opendir (directory)) != NULL)
{
while ((ent = readdir (dir)) != NULL)
{
if(strstr(ent->d_name,".") != NULL)
cout<<ent->d_name<<endl;
else
{
strcat(directory,ent->d_name);
strcat(directory,"\\");
strcat(directory,"\0");
cout<<directory<<endl;
cin.get();
listDir(directory);
}
}
}
closedir (dir);
}
int main(int param, char **args)
{
char *path = new char[];
path = args[1];
strcat(path, "\\");
listDir(path);
cin.get();
return 0;
}
我正在使用 dirent (实际上很酷,如果您还没有的话,请获取它)并且当我递归获取文件夹时,它似乎添加到我的子文件夹末尾的目录中。例如:
下载、图像和包含都是我的 Jakes625 文件夹的子文件夹。也许我错过了什么?