Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Compressione file SharpZipLib senza sottocartelle
mercoledì 25 febbraio 2009 - 10.24
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
perla0279
Profilo
| Senior Member
274
messaggi | Data Invio:
mer 25 feb 2009 - 10:24
ciao
sto cercando di creare un file zip usando la classe SharpZipLib
ho scitto questo codice
'Definisce la classe del controllo di CRC
Dim Crc As SharpZipLib.Checksums.Crc32 = New SharpZipLib.Checksums.Crc32
'Definisce lo stream di output dove scrivere l'archivio zip
Dim zippa As SharpZipLib.Zip.ZipOutputStream = _
New SharpZipLib.Zip.ZipOutputStream(System.IO.File.Create("rrr.zip")) 'zippa.SetLevel(9)
'Dim ZIPPA As ICSharpCode.SharpZipLib.Zip.ZipOutputStream = New ICSharpCode.SharpZipLib.Zip.ZipOutputStream(File.Create("\\prova\prova1\prova2\prov3a\rrr.zip")
'Definisce lla variabile che contiene il file che vogliamo zippare
Dim f As String = "\\prova\prova1\prova2\prov3a\rrr.txt"
'Definisce una variabile che contiene lo stream del file di origine
Dim fileaperto As FileStream = System.IO.File.OpenRead(f)
'Definisce una variabile di tipo byte della grandezza pari alla lunghezza del file originale
Dim contenitore() As Byte = New Byte(CInt(fileaperto.Length)) {}
'Questa variabile è molto importante perchè definisce una nuova entry nel file dell'archivio ZIP
Dim z As SharpZipLib.Zip.ZipEntry = New SharpZipLib.Zip.ZipEntry(f)
'Mette il contenuto dello stream in un contenitore di byte
fileaperto.Read(contenitore, 0, contenitore.Length)
'Imposta la data di compressione.
z.DateTime = DateTime.Now
'Imposta la dimensione del file originale
z.Size = fileaperto.Length + 1
'Chiude la variabile che contiene il lo stream del file originale
fileaperto.Close()
'Azzera la checksum
Crc.Reset()
'Imposta un nuovo valore per la checksum che dipende dai byte del file originale
Crc.Update(contenitore)
'Imposta il valore della CRC nella compressione
z.Crc = Crc.Value
'Inserisce nell?archivio ZIP una nuova entry
zippa.PutNextEntry(z)
'Effettua di fatto la compressione del file scrivendo nella nuova entry create al passo precedente il file comrpesso.
zippa.Write(contenitore, 0, contenitore.Length)
'Chiude lo stream del file di output e lo svuota dopo aver fisicamente salvato nel file ZIP i risultato della compressione.
zippa.Finish()
'Rilascia la variabile.
zippa.Close()
funziona l'unico problema è che mi ritorna un file zippato contenente le seguenti cartelle
prova\prova1\prova2\prov3a\
ed all'interno il file rrr.txt
io però ho la neccesita che il file zippato non contenga nessuna sotto cartella ma solo il mio file .txt..........
come posso fare per fare in modo che estragga solo quello ???? e non tutte le sotto cartelle indicate nel percorso ???
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !