我試圖遞歸地獲取目錄的所有文件和子文件夾。這是我到目前爲止。閱讀遞歸目錄
#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文件夾的所有子文件夾。也許我錯過了什麼?
你有什麼問題? –
這段代碼甚至沒有編譯:這個語句需要一個大小:''char * path = new char [];''爲什麼你不使用C++字符串? –
爲什麼這個標籤C而不是C++?你正在使用'#include'所以它必須是C++,而不是C. –