- Codice: Seleziona tutto
DIR *dirStream;
dirStream=opendir(argv[1]); //da riga di comando ottengo il nome della directory
if((errno==ENOTDIR)||(errno== ENOENT)){
printf("Directory not exist or path is not a directory..\n");
return -1;
}
struct dirent *dirp=readdir(dirStream);
while(dirp!=NULL){
printf("Nome file %s ",dirp->d_name);
char *path=(char*)malloc((strlen(argv[1])+strlen(dirp->d_name)+2)*sizeof(char));
struct stat *buf;
if(dirp->d_name[0]!='.'){
strcpy(path,argv[1]);
strcat(path,dirp->d_name);
lstat(path,buf); //necessaria per verificare se è una directory o no
if(S_ISDIR(buf->st_mode)){
printf("IS A DIRECTORY!!!"); //qui dovrei continuare l'esplorazione
}
}
printf("\n");
dirp=readdir(dirStream);
strcpy(path,"");
free(path);
}
Ora il mio problema è come esplorare anche le sottodirectory.Avevo provato a costruire il nome della sottodirectory(variabile path, concatenando anche il carattere "/") e a ripetere la procedura ma ottengo sempre un errore di segmentazione.Forse non si possono aprire due directory stream contemporaneamente.Spero di essermi fatto capire!Grazie intanto

,

