Ciao a tutti.
Il problema che deo porvi e’ decisamente incasinato.
Devo creare una procedura che mi navighi all’interno di una struttura cosi’ definita:
C’e’ una cartella “dati” che ha al suo interno una serie di cartelle “padre” che a loro volta hanno un tot di cartelle “figlie”.
Per ogni cartella “padre” dovrei aprire la sola cartella “figlia” che mi corrisponde nella data (di creazione, o di ultima modifica ad es.) al parametro data passato.
Per ogni “padre” dovro’ quindi aprire una “figlia”.
Di ogni “figlia” dovrei infine dire quanti file contiene, se vi sono file vuoti, ecc.
Non riesco a combinare gran che’, a parte questo (che nemmeno funziona)… Ci sto lavorando dalla mattina alla sera, senza fare molti progressi…
Grazie mille a tutti.
A presto.

codice:
#include <string.h>
#include <sys/stat.h>
#include <dirent.h>
#include <string.h>


int main () {
    int padre_n=1, file_counter=0;
    DIR *dati_dir, *padre_dir, *figlia_dir;
    struct dirent *nav_dati, *nav_padre, *nav_figlia;
    struct stat my_file;
    
    dati_dir=opendir("dati");
    if (dati_dir==NULL) {
       printf("Warning: Directory \'dati\' not present!\n");
       return 0;
    }
    
    nav_dati=readdir(dati_dir);
    while (nav_dati!=NULL) {
          padre_dir=opendir(nav_dati->d_name);
          if (padre_dir!=NULL) {
             printf("padre0%d", padre_n);                
             nav_padre=readdir(padre_dir);
             while (nav_padre!=NULL) {
                   figlia_dir=opendir(nav_padre->d_name);
                   if (figlia_dir!=NULL) {
                      nav_figlia=readdir(figlia_dir);
                      while (nav_figlia!=NULL) {
                            stat(nav_figlia->d_name, &my_file);
                            file_counter++;
                            if (my_file.st_size==0)
                               printf("\tdirectory_contains_some_empty_files\n");
                            nav_figlia=readdir(figlia_dir);
                      }
                      if (file_counter==0)
                         printf("\tdirectory_is_empty_\n");
                      else if (file_counter<4)
                           printf("\tdirectory_contains_too_few_images\n");
                   }
                   else
                       printf("\tdirectory_not_present\n");
                   closedir(figlia_dir);
                   nav_padre=readdir(padre_dir);
             }
          }
          else
              printf("Warning: Directory \'padre0%d\' not present!\n", padre_n);
          closedir(padre_dir);
          padre_n++;
          nav_dati=readdir(dati_dir);               
    }                  
    closedir(dati_dir);                        
    
    return 0;
}
Questo l'ho fatto generico (apre tutte le "figlie" di ogni "padre") non sapendo appunto come scegliere in base alla data...