私は再帰的にすべてのファイルとフォルダlist.Butを取得しようとしましたが、ドキュメントのサブディレクトリとそれらの内部を取得することができます。私はサブディレクトリの内部に他のフォルダを取得できません。 私はあなたがwhileループの後closedir(da);
を呼び出す必要がreader
でくれCディレクトリとサブディレクトリ再帰
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
#include <windows.h>
#include <unistd.h>
#include <string.h>
void list(char *a);
void reader(char *path);
int
main (void)
{
DIR *dp;
struct dirent *ep;
dp = opendir ("C:\\Users\\pen\\Documents\\");
if (dp != NULL)
{
while (ep = readdir (dp)){
GetFileAttributes(ep->d_name);
if(FILE_ATTRIBUTE_DIRECTORY & GetFileAttributes(ep->d_name))
{
if (strcmp(".",ep->d_name)==0)
continue;
if (strcmp("..",ep->d_name)==0)
continue;
reader(ep->d_name);
}
}
closedir(dp);
}
else
perror ("Couldn't open the directory");
closedir(dp);
system("pause");
return 0;
}
void reader(char *path){
DIR *da;
struct dirent *ef;
da = opendir(path);
while (ef=readdir(da)){
printf ("%s\n",ef->d_name);
if(FILE_ATTRIBUTE_DIRECTORY & GetFileAttributes(ef->d_name))
{
if (strcmp(".",ef->d_name)==0)
continue;
if (strcmp("..",ef->d_name)==0)
continue;
reader(ef->d_name);
}
}
closedir(da);
}
ディレクトリはC言語の概念ではなく、オペレーティングシステムの概念です。あなたの質問がどのようなシステムであるかを知るように、あなたの質問に正しくタグを付けてください。また、このページの右のコロンを見ると、すでにその行に多くの質問があることがわかります。投稿する前にそれらを読んだことがありますか? –