Alla fine ci sono riuscito
Vorrei segnalare un altro sito che spiega molto meglio, rispetto a DotNetHell che tralascia molte cose a livello di codice(non chiude lo stream, ecco perché il file mi risultava danneggiato!), come usare questa libreria, il link è
http://www.boschin.it/blogs/radicalm...arpziplib.aspx
Questo è il codice al quale sono arrivato per comprimere un'intera cartella più un file che non appartiene alla cartella(archivio.mdb):
codice:
Dim s As New ZipOutputStream(File.Create(PercorsoBackupFile))
Dim fs As FileStream
Dim buffer() As Byte
Dim myEntry As New ZipEntry(Application.StartupPath & "\archivio.mdb")
s.SetLevel(CompressLevel)
fs = File.OpenRead(Application.StartupPath & "\archivio.mdb")
ReDim buffer(fs.Length)
'Leggo il buffer
fs.Read(buffer, 0, buffer.Length)
myEntry = New ZipEntry(Application.StartupPath & "\archivio.mdb")
'Aggiungo la entry al file zip
s.PutNextEntry(myEntry)
'Scrivo il buffer
s.Write(buffer, 0, buffer.Length)
s.CloseEntry() 'l'ho messo io questo
fs.Close()
Dim fi As FileInfo = New FileInfo(Application.StartupPath & "\archivio\")
Dim di As DirectoryInfo = fi.Directory
Dim fsi As FileSystemInfo() = di.GetFiles()
For Each info As FileSystemInfo In fsi
fs = File.OpenRead(Application.StartupPath & "\archivio\" & info.Name)
ReDim buffer(fs.Length)
'Leggo il buffer
fs.Read(buffer, 0, buffer.Length)
myEntry = New ZipEntry(Application.StartupPath & "\archivio\" & info.Name)
'Aggiungo la entry al file zip
s.PutNextEntry(myEntry)
'Scrivo il buffer
s.Write(buffer, 0, buffer.Length)
s.CloseEntry() 'l'ho messo io questo
Next
s.Finish() 'chiudo lo stream
s.Close() 'chiudo il file
Qualsiasi problema sono a completa disposizione
Ps. Ovviamente il tutto funziona se si mette la Dll in questione tra i riferimenti e si usa la direttiva
Imports ICSharpCode.SharpZipLib.Zip
Adesso mi mana la decompressione...non appena ci riesco mi rifaccio vivo.