ディレクトリのすべてのファイルとサブフォルダーを再帰的に取得しようとしています。これが私がこれまでに持っているものです。
#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を使用しています(実際にはかなりクールです。まだ取得していない場合は取得してください)。フォルダーを再帰的に取得すると、サブフォルダーの最後のディレクトリに追加されるようです。例えば:
Downloads、Images、Includes はすべて、私の Jakes625 フォルダーのサブフォルダーです。おそらく私は何かを逃していますか?