C,ricerca ricorsiva file con una certa esensione nel sottoalbero radicato nella directory passata come argomento

di il
3 risposte

C,ricerca ricorsiva file con una certa esensione nel sottoalbero radicato nella directory passata come argomento

Salve a tutti sto cercando di fare un programmino in C (uso linux) che cerca ricorsivamente i file con una certa estensione nel sottoalbero radicato nella directory (estensione e directory passati come argomento). Sto trovando problemi sul "percorrere" ricorsivamente tutto il sottoalbero ovvero a cercare file anche nelle sottodirectory presenti in quella passata come argomento...
Questo è quanto ho fatto....

#include<stdio.h>
#include<sys/stat.h>
#include<errno.h>
#include<stdlib.h> 
#include<dirent.h>
#include<stdarg.h>
#include<limits.h>
#include<string.h>
#include<time.h>

void ricors(const char estensione[],const char nomedirectory[]){

struct stat attr;
char dbuf[PATH_MAX+1];
DIR * fh ;//puntatore ad una struttura DIR
struct dirent *fdata;
struct stat buf;
if((fh=opendir(nomedirectory))==NULL){
perror("ERRORE 1");
exit(errno);
}
puts("\nElenco directory:\n");

while((fdata = readdir (fh))!=NULL){

if(strstr(fdata->d_name,estensione)){

realpath(fdata->d_name,dbuf);

printf("[%s]",dbuf);

stat(nomedirectory,&attr);
printf("%s\n",ctime(&attr.st_mtime));
}

}

}      
 

int main(int argc, char *argv[])
{
   
  if(argc==3){
    
            printf("Controllo esistenza directory.. \n");
 
                    ricors(argv[1],argv[2]);
    }

/*else if(argc==2){


crea funzione che cerca a partire dalla directory corrente

*/
}
Qualcuno può darmi cortesemente una mano?

3 Risposte

Devi accedere o registrarti per scrivere nel forum
3 risposte