PDA

View Full Version : [VB.NET] Comprimere cartella


jackk87
28-07-2009, 20:20
Buonasera,
nel mio programma devo comprimere una cartella con tutto il suo contenuto(sotto cartelle e file) e devo sapere anche quando è terminata l'operazione per poi proseguire con le altre.
ho provato ad utilizzare winrar mandando comandi da codice

Shell("c:\programmi\winRAR\winRAR.exe A -S c:\tema.zip """ & FolderBrowserDialog1.SelectedPath & """)

ma mi da un sacco di problemi. Qualcuno sa darmi qualche dritta?
grazie in anticipo :help: :help: :help:

jackk87
29-07-2009, 19:31
Per chi è interessato ho risolto usando la libreria zipforge.net molto utile comoda e semplicissima

Ciao a tutti :D

Morlack`X
30-07-2009, 13:02
Attualmente nei miei progetti sto usando SharplibZip (Homepage (http://www.icsharpcode.net/OpenSource/SharpZipLib/)).

La trovo comodissima perchè in un attimo mi permette di zippare/unzippare file e cartelle.

Ti aggiungo un pezzo di codice per farti capire la semplicità (è in c# ma è un attimo portarlo in vb.net) :


ZipFile zip = ZipFile.Create(nomeZip); //Nome del nuovo file zip

zip.BeginUpdate(); // inizio la fase di inserimento file

zip.Add(fileDaZippare, nomeFileSalvatoNelloZip); //aggiungo un file da zippare
//il primo è il percorso completo del file da zippare,
//l'altro è come viene salvato nello zip (senza percorso viene salvato nella root del file zip)

zip.CommitUpdate(); //confermo le modifiche

zip.Close(); //chiudo il filezip

zip = null; //freeeeeeeee willy



La libreria contiene un sacco di cose oltre a questa, tipo creare dello stream compresso con questa libreria, ma l'autore ha lavorato molto anche sull'astrazione e ha "wrappato" tante operazioni noiose.