C\C++ leggere una directory

carlo232
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 :D

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

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


Provo! :D

carlo232
Purtroppo non sono riuscito a trrovare molto :(

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.

enigmagame
Vero Stan, ed è anche molto più semplice l'utilizzo...
Ciao :D

carlo232
"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 :-D

anonymous_be1147
"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 è. :D

anonymous_be1147
"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

vl4dster
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

vl4dster

carlo232
"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 :D Peccato che Visual C++ 6.0 non ce l'ha inclusa, magari Dev C++...

vl4dster
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...

carlo232
"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!! :D

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 :wink:

carlo232
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 :D :wink:

gigilatrottola2
ma stai lavorando su windows?
perche nn usi le funzioni di sistema? ...visto che è gia tutto pronto

carlo232
"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...

gigilatrottola2
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....

carlo232
"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

gigilatrottola2

carlo232
"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! :wink:

Rispondi
Per rispondere a questa discussione devi prima effettuare il login.