PDA

View Full Version : scansionare una cartella in c


Ansem_93
16-09-2014, 11:37
Salve a tutti, io dovrei risolvere un esercizio dove bisogna scansionare tutti i file all'interno di una cartella. Il problema è che non so come fare a selezionarli una volta che mi hanno dato l'indirizzo della cartella :(
per la precisione la traccia è questa:
tutti i file regolari, non nascosti (il primo carattere deve essere diverso da punto) della directory corrente.
Qualcuno mi sa dire come dovrei fare?

monte.cristo
16-09-2014, 12:56
In C esiste nello standard dirent.h dove sono dichiarate delle funzioni relative alla gestione delle directory, mentre in stdio.h trovi le funzioni relative ai file.
;)

ingframin
16-09-2014, 12:57
Salve a tutti, io dovrei risolvere un esercizio dove bisogna scansionare tutti i file all'interno di una cartella. Il problema è che non so come fare a selezionarli una volta che mi hanno dato l'indirizzo della cartella :(
per la precisione la traccia è questa:
tutti i file regolari, non nascosti (il primo carattere deve essere diverso da punto) della directory corrente.
Qualcuno mi sa dire come dovrei fare?

In C dipende dal sistema operativo:
http://www.dreamincode.net/forums/topic/126928-list-files-in-folder-ansi-c/
Qui trovi la risposta per linux e windows.
C non ha nessun sistema tipo python (os.listir()) purtroppo.

ingframin
16-09-2014, 12:58
In C esiste nello standard dirent.h dove sono dichiarate delle funzioni relative alla gestione delle directory, mentre in stdio.h trovi le funzioni relative ai file.
;)

dirent.h funziona solo con unix e derivate, non funziona in windows.
EDIT:
In windows puoi seguire questa via: http://www.softagalleria.net/dirent.php
oppure provare con MingW - gcc

!fazz
16-09-2014, 14:05
dirent.h funziona solo con unix e derivate, non funziona in windows.
EDIT:
In windows puoi seguire questa via: http://www.softagalleria.net/dirent.php
oppure provare con MingW - gcc

comunque l'esempio è chiaramente per mondo *nix

monte.cristo
17-09-2014, 18:01
dirent.h funziona solo con unix e derivate, non funziona in windows.
EDIT:
In windows puoi seguire questa via: http://www.softagalleria.net/dirent.php
oppure provare con MingW - gcc
Infatti, sentendo parlare di file nascosti e punto iniziale, ho concluso che si trattasse di un ambiente *nix.
Non uso più windows da molto, ma non mi sembra di ricordare che la convenzione del punto iniziale per rappresentare i file nascosti fosse applicata a quei sistemi operativi