Kjapp og trygg hosting for Wordpress

Hvordan zippe en hel folder med VB.NET ?

Stian O

Medlem
Så vidt jeg vet kan GZip kun komprimere én enkelt fil. En enkel måte å omgå problemet blir derfor å
1. Binde sammen alle filene i folderen til én fil.
2. Zippe denne.

Punkt to har jeg løsningen til i lenken ovenfor.

Det å binde sammen filene burde være en enkel sak, men jeg har ikke klart å google meg til en godkjent kode. Jeg "hjemmesnekret" en løsning for tekstfiler ved å la ta alle filene i en mappe og lage én stor fil ut av det. I starten av den store filen la jeg inn info om filene (filbnavn) slik at man kan i etterkant kan opprette de opprinnelige filene igjen.

Problemet med dette er ÆØÅ ikke alltid fungerer pga forskjellige komprimeringer. Derfor ønsker jeg en løsning som kopierer den nøyaktige bit-strømmen.
 

Stian O

Medlem
Jeg leker meg med FileStream nå. Burde være enkelt om man åpner filene og legger disse til en byte-array. Om man også noterer antallet filer, navnene på disse, og hvor i byte-arrayen hver enkelt fil starter, burde det vel gå an å lage én fil som man senere kan splitte tilbake til de originale filene?
 

Stian O

Medlem
Tusen hjertelig, Pong :)

Jeg er selvlært i programmering og visste ikke at det er så lett å importere et bibliotek.

For de som er på mitt nivå kan jeg forklare hvor lett det er:
1. Lastet ned DoNetZip
2. Kopierte 'Ionic.Zip.dll' fra '\DotNetZipLib-DevKit-v1.9\zip-v1.9\Debug' og limte den i bin-folderen til mitt VB.NET-prosjekt
3. Valgte denne via Project->Add Reference fra menyen øverst i Visual Basic Express

Denne koden zippet to bilder:

Imports Ionic.Zip

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Using zip As ZipFile = New ZipFile()
zip.AddFile("Bilde1.jpg")
zip.AddFile("Bilde2.jpg")
zip.Save("BilderZippet.zip")
End Using
End Sub
End Class
 
Topp