View Full Version : [C] Mostra contenuto directory
salvodel
29-10-2008, 12:17
Salve a tutti è possibile in un programmino chiedere di vedere il contenuto di una directory? Sarebbe il massimo poter mostrare tutti i file con estensione *.dat ad esempio.
Grazie
DanieleC88
29-10-2008, 12:29
Ci sono diversi modi, ad esempio readdir() (http://linux.die.net/man/3/readdir) e ftw() (http://linux.die.net/man/3/ftw), ma mi sa che funzionano solo su sistemi Unix. Per Windows, fai una ricerca su MSDN. :)
salvodel
29-10-2008, 12:42
Ci sono diversi modi, ad esempio readdir() (http://linux.die.net/man/3/readdir) e ftw() (http://linux.die.net/man/3/ftw), ma mi sa che funzionano solo su sistemi Unix. Per Windows, fai una ricerca su MSDN. :)
Va bene adesso provo sotto Linux e vedo se ne vale la pena: in teoria gia solo quali files ci "devono" essere. Altrimenti faccio una printf tipo menu...grezzissimo:D
salvodel
18-11-2008, 10:40
Dopo quasi due mesi mi autorispondo...casomai qualcuno come me può trovare utile questa soluzione(sotto linux)
int dir(char *indirizzo) {
DIR *pDIR;
struct dirent *pDirEnt;
pDIR = opendir(indirizzo);
if ( pDIR == NULL ) {
fprintf( stderr, "%s %d: opendir() failed (%s)\n",
__FILE__, __LINE__, strerror( errno ));
exit( -1 );
}
pDirEnt = readdir( pDIR );
while ( pDirEnt != NULL ) {
printf( "%s\n", pDirEnt->d_name );
pDirEnt = readdir( pDIR );
}
closedir( pDIR );
return 0;
}
Ovviamente sotto Windows con VC++
system("dir")
Ovviamente sotto Windows con VC++
system("dir") analogamente sotto Linux: system("ls");
DanieleC88
18-11-2008, 10:56
Ovviamente sotto Windows con VC++
system("dir")
Ci sarà un modo migliore per farlo anche su Windows... Altrimenti pure da Linux potevi usare system("ls"). :Prrr:
ciao ;)
Ci sarà un modo migliore per farlo anche su Windows... Altrimenti pure da Linux potevi usare system("ls"). :Prrr:
ciao ;) http://msdn.microsoft.com/en-us/library/aa365200(VS.85).aspx
DanieleC88
18-11-2008, 11:03
http://msdn.microsoft.com/en-us/library/aa365200(VS.85).aspx
Lo so, era per stimolarlo ad ingegnarsi una soluzione più pulita. :D
salvodel
18-11-2008, 15:26
Visto che una volta risolto il problema ci sono mille proposte(:ncomment:) faccio una provocazione:
non è possibile fare una funzione che vada bene sia sotto windows sia sotto linux?
Grazie
PS
Sto scherzando è che 2 mesi fa :muro: mi avrebbe fatto piacere se qualcuno mi avesse risposto con entrambe le soluzioni che mi avete dato.
DanieleC88
18-11-2008, 17:58
non è possibile fare una funzione che vada bene sia sotto windows sia sotto linux?
Non in questo caso, visto che Windows e Linux sono sistemi operativi diversi, e visto che stai andando a fare uso di routine messe a disposizione dal sistema operativo, non dal linguaggio che usi. Magari con Java avresti risolto lo stesso problema senza duplicare il codice. ;)
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.