PDA

View Full Version : [C]Acquisizione nomi file e uso di system()


cybergabry
18-05-2010, 15:34
Ciao a tutti,
avrei questo problema. Devo scrivere un programmino che copi automaticamente i file contenuti in una cartella in altre cartelle dipendentemente dal loro nome.
Nel senso che se nel nome del file è contenuta una certa stringa verrà copiato in una certa cartella.
Ho pensato di usare system() per effettuare la copia.
Mi potete aiutare?
Grazie molte

DanieleC88
18-05-2010, 18:19
Se usi system() lanci la shell... Tanto vale fare direttamente uno script per l'interprete dei comandi, invece che perdere del tempo a farlo in C. ;)

Su che sistema operativo lavori?
Su sistemi UNIX puoi usare comodamente ciò che ti offre dirent.h (http://opengroup.org/onlinepubs/007908775/xsh/dirent.h.html), non so se funziona anche su Windows.
Se non erro, su Windows useresti FindFirstFile() e compagnia bella. Ma comunque un bel giretto su MSDN non fa mai male, se vuoi toglierti il dubbio.

cybergabry
19-05-2010, 10:19
Se usi system() lanci la shell... Tanto vale fare direttamente uno script per l'interprete dei comandi, invece che perdere del tempo a farlo in C. ;)

Su che sistema operativo lavori?
Su sistemi UNIX puoi usare comodamente ciò che ti offre dirent.h (http://opengroup.org/onlinepubs/007908775/xsh/dirent.h.html), non so se funziona anche su Windows.
Se non erro, su Windows useresti FindFirstFile() e compagnia bella. Ma comunque un bel giretto su MSDN non fa mai male, se vuoi toglierti il dubbio.

Grazie per la risposta, ma come faccio con 1 script shell a prendere i files contenuti nella cartella e a copiarli in altre a secondo della stringa di caratteri contenuta nel loro nome?
Per esempio se nel nome è contenuta la stringa "ciao1" devono essere copiati in una cartella, quelli con "ciao2" in un altra...
Per questo stavo usando il c, solo che non so passare a system() il contenuto di un array di caratteri che contiene il nome.
Sono su windows.

DanieleC88
19-05-2010, 12:43
move *ciao1* X:\Destinazione1
move *ciao2* X:\Destinazione2

cybergabry
19-05-2010, 14:31
Grazie,
hai proprio ragione. Ascolta avrei un'ultimo problema, un po' più complesso.
Tutti questi file txt di questa cartella, prima di essere spostati nelle altre cartelle nel modo che abbiamo visto, devono essere zippati nella stessa cartella mantenendo ognuno lo stesso nome e cambiando solo l'estenzione in .zip.
Per esempio se nella cartella sono contenuti:
miofile1.txt
miofile2.txt
Dopo avremo:
miofile1.txt
miofile2.txt
miofile1.zip
miofile2.zip

Per fare ciò ho provato con pkzip che è per dos ma non accetta in ingresso delle variabili.
Prometto che non ti disturbo più:(

DanieleC88
19-05-2010, 15:38
Se ci fosse BASH sarebbe questione di tre righe, ma da Windows effettivamente è più complesso. :stordita:

...Ma farlo in Python è un problema per te? :p

Ryuzaki_Eru
19-05-2010, 15:57
Python :Perfido:

cybergabry
19-05-2010, 16:10
Purtroppo non so nulla di Python.