C'è una funzione in C e in C++ che restituisce il numero di file contenuti in una cartella, sia per Unix che per Windows?
C'è una funzione in C e in C++ che restituisce il numero di file contenuti in una cartella, sia per Unix che per Windows?
Non direttamente. In Unix c'è dirent.h, in windows di solito si usa l'API di sistema (anche se mi pare ci sia un header da usare ma non ricordo quale).
In ogni caso per sapere il numero di file devi sfogliare la cartella, estraendo i vari file contenuti e mantenendo un contatore.
This code and information is provided "as is" without warranty of any kind, either expressed
or implied, including but not limited to the implied warranties of merchantability and/or
fitness for a particular purpose.
Hai un pezzo di codice da mostrarmi per vedere come si fa?Originariamente inviato da shodan
Non direttamente. In Unix c'è dirent.h, in windows di solito si usa l'API di sistema (anche se mi pare ci sia un header da usare ma non ricordo quale).
In ogni caso per sapere il numero di file devi sfogliare la cartella, estraendo i vari file contenuti e mantenendo un contatore.
Grazie.
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
Posta le correzioni, magari a qualcuno potrebbero tornare utiliOriginariamente inviato da rescueme
Grazie. Il codice per UNIX è leggermente sbagliato e non funziona così com'è: ho dovuto modificarlo.![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
Ecco il codice corretto per UNIX:
Codice PHP:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main()
{
int count;
DIR *d;
if( (d = opendir(".")) != NULL)
{
for(count = 0; readdir(d) != NULL; count++);
closedir(d);
}
printf("\n %d", count);
return 0;
}
Qual è la differeza con quello presente al link che ho messo?Originariamente inviato da rescueme
Ecco il codice corretto per UNIX:
Codice PHP:
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main()
{
int count;
DIR *d;
if( (d = opendir(".")) != NULL)
{
for(count = 0; readdir(d) != NULL; count++);
closedir(d);
}
printf("\n %d", count);
return 0;
}
![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI
DIR *d anziché S_Dir *d o struct DIR *d come risponde l'utente nel secondo post.. Giustamente i directory stream della libreria dirent vanno dichiarati di tipo DIR.
every day above ground is a good one
L'avevo vista la risposta, mi riferivo appunto a quella quando ho chiesto a rescueme le differenzeOriginariamente inviato da YuYevon
DIR *d anziché S_Dir *d o struct DIR *d come risponde l'utente nel secondo post.. Giustamente i directory stream della libreria dirent vanno dichiarati di tipo DIR.![]()
SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
Di questo libro e degli altri (blog personale di recensioni libri) | NO M.P. TECNICI