Ich habe versucht, alle Dateien und Ordner Liste rekursiv zu bekommen.Aber ich kann nur Unterverzeichnisse von Dokumenten und innerhalb von ihnen. Ich kann nicht die anderen Ordner, die innerhalb des Unterverzeichnisses. Ich weiß nicht, wie es zu tun recursively.I zu hoffen, dass Sie mir helfenC Verzeichnis und Unterverzeichnis Rekursion
#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);
}
Verzeichnisse sind kein Konzept der C-Sprache, sondern des Betriebssystems. Bitte kennzeichnen Sie Ihre Frage so, dass wir wissen, um welches System es sich bei Ihrer Frage handelt. Wenn Sie sich den richtigen Doppelpunkt auf dieser Seite ansehen, sehen Sie, dass viele Fragen bereits in dieser Zeile gestellt wurden. Hast du sie vor dem Posten gelesen? –