C\C++ leggere una directory
In che modo posso scrivere del codice che permetta di visualizzare l'elenco dei nomi dei file presenti un una data directory?
Grazie, ciao ciao
Grazie, ciao ciao

Risposte
Ciao
puoi utilizzare le system call, io conosco quelle di Linux, ma su google trovi l'elenco con spiegazioni anche per Windows...

puoi utilizzare le system call, io conosco quelle di Linux, ma su google trovi l'elenco con spiegazioni anche per Windows...
"enigmagame":
Ciao![]()
puoi utilizzare le system call, io conosco quelle di Linux, ma su google trovi l'elenco con spiegazioni anche per Windows...
Provo!

Purtroppo non sono riuscito a trrovare molto

Ciao, Carlo. In alternativa alla soluzione di enigmagame, puoi optare per una libreria specifica C++ come la Boost Filesystem Library, in particolare guarda la sezione relativa alle operazioni specifiche sulle directory.
La scarichi dalla homepage http://boost.org/
C'è anche un esempio già fatto, che elenca i file presenti in una directory.
La scarichi dalla homepage http://boost.org/
C'è anche un esempio già fatto, che elenca i file presenti in una directory.
Vero Stan, ed è anche molto più semplice l'utilizzo...
Ciao
Ciao

"anonymous_be1147":
Ciao, Carlo. In alternativa alla soluzione di enigmagame, puoi optare per una libreria specifica C++ come la Boost Filesystem Library, in particolare guarda la sezione relativa alle operazioni specifiche sulle directory.
La scarichi dalla homepage http://boost.org/
C'è anche un esempio già fatto, che elenca i file presenti in una directory.
Grazie, però potresti ancora indicarmi il link esatto del download? Stasera mi perdo tra i mirror

"enigmagame":
Vero Stan, ed è anche molto più semplice l'utilizzo...
Ti dirò, personalmente avrei fatto come dicevi tu. Non mi piace molto il C++ e meno lo uso meglio è.

"anonymous_be1147":
potresti ancora indicarmi il link esatto del download?
Certo, la versione per Windows è a questo indirizzo: http://prdownloads.sourceforge.net/boos ... e?download
Purtroppo lo standard C\C++ non fornisce librerie per gestire le directory, pero' e sono presenti in tutti i compilatori seri, ormai sono quasi standard http://www.opengroup.org/onlinepubs/007 ... ent.h.html
altrimenti anche le boost vanno benissimo
altrimenti anche le boost vanno benissimo
"vl4d":
Purtroppo lo standard C\C++ non fornisce librerie per gestire le directory, pero'e sono presenti in tutti i compilatori seri, ormai sono quasi standard
Sembra che dirent.h sia molto semplice da usare

DevC++ sono sicuro che ce l'abbia. Forse visual c++ non l'ha messa perche' ha qualcos'altro by microsoft ma non avendo mai usato visual c++ non saprei proprio...
"vl4d":
DevC++ sono sicuro che ce l'abbia. Forse visual c++ non l'ha messa perche' ha qualcos'altro by microsoft ma non avendo mai usato visual c++ non saprei proprio...
Anche io ho subito pensato a DevC++, ne ho scaricato una delle ultim beta e ho creato il progetto dell'esempio...funziona!!

Ho solo apportato alcune modifiche perchè così com'è scrive i nomi dei file uno attaccato all'altro senza andare a capo, ho provato a usare dirent.h con Visual C++ ma alcune costanti non funzionano comunque provando un pò è possibile che riesca a usarla anche in Visual C++ che mi piace di più.
Grazie, se avete altri suggerimenti postate pure

Come avrete intuito sto realizzando un programma console per fare alcune semplici operazioni sui file e le cartelle.
Come potrei cambiare l'attributo di un file?
Precisamente dovrei implementare una funzione, "proteggi cartella", che imposterebbe l'attributo *sola lettura* a tutti i file di una directory.
Grazie
Come potrei cambiare l'attributo di un file?
Precisamente dovrei implementare una funzione, "proteggi cartella", che imposterebbe l'attributo *sola lettura* a tutti i file di una directory.
Grazie


ma stai lavorando su windows?
perche nn usi le funzioni di sistema? ...visto che è gia tutto pronto
perche nn usi le funzioni di sistema? ...visto che è gia tutto pronto
"gigilatrottola":
ma stai lavorando su windows?
perche nn usi le funzioni di sistema? ...visto che è gia tutto pronto
Se intendi usare explorer... beh, allora poptrei anche evitare di programmare!
Sto cercando di imparare la gestione dei file con il linguaggio C\C++, ovvio che sono tutte cose già integrate nel sistema operativo, certo che se voglio creare un programma tutto mio...
intendo che se vuoi lavorare con file e directory in ambiente windows dentro windows.h ci sono gia tutte le funzioni che fanno quello che ti serve... nonche le strutture dati contenenti le informazioni che cerchi (gli attributi)
volente o nolente, quando lavori sul sistema devi sempre tornare alle funzioni specifiche di quel sistema....
volente o nolente, quando lavori sul sistema devi sempre tornare alle funzioni specifiche di quel sistema....
"gigilatrottola":
intendo che se vuoi lavorare con file e directory in ambiente windows dentro windows.h ci sono gia tutte le funzioni che fanno quello che ti serve... nonche le strutture dati contenenti le informazioni che cerchi (gli attributi)
Si ok, ma da come l'avevi detto sembrava mi consigliassi di usare explorer, purtroppo se sapessi come utilizzare le funzioni di windows.h non avrei scritto questo post, non mi sei d'aiuto

volente o nolente, quando lavori sul sistema devi sempre tornare alle funzioni specifiche di quel sistema....
Non ho mai fatto un obiezione di coscienza al riguardo
"gigilatrottola":
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/getfileattributes.asp
Grazie, oggi lo leggo e provo a vedere se riesco a farlo funzionare!
