Gateway_man Geschrieben 2. August 2009 Geschrieben 2. August 2009 Hi leute, hab hier ein folgendes Problem: Ich will eine Datei kompriemieren nur weiß ich jetzt nicht wie ich beim Gzipstream dessen standartcompressionsrate auf 0 ist diese auf das maximum welches 9 ist zu stellen. Hier ist der momentane Funktion zum comprimieren: Public Function ZipFile(ByVal sFile As String, Optional ByVal sZipFile As String = "") As Boolean Try If System.IO.File.Exists(sFile) Then If sZipFile.Length = 0 Then With New System.IO.FileInfo(sFile) sZipFile = .DirectoryName If Not sZipFile.EndsWith("\") Then sZipFile += "\" sZipFile += .Name.Substring(0, .Name.Length - .Extension.Length) & ".gzip" End With End If Dim oStream As System.IO.FileStream oStream = New System.IO.FileStream(sFile, IO.FileMode.Open) Dim bBuffer(oStream.Length - 1) As Byte With oStream .Read(bBuffer, 0, bBuffer.Length) .Close() End With ' Jetzt Daten komprimieren und in Zieldatei speichern oStream = New System.IO.FileStream(sZipFile, IO.FileMode.Create) Dim oCompress As New System.IO.Compression.GZipStream( _ oStream, IO.Compression.CompressionMode.Compress) With oCompress .Write(bBuffer, 0, bBuffer.Length) .Flush() .Close() End With oStream.Close() End If Return True Catch Return False End Try End Function Mfg Gateway Zitieren
0815FIA Geschrieben 2. August 2009 Geschrieben 2. August 2009 Kann man wohl nicht, wie es aussieht :/ Why do GZipStream compression ratio so bad? Zitieren
Gateway_man Geschrieben 2. August 2009 Autor Geschrieben 2. August 2009 Hm mist. Hat hier schonmal jemand mit der ICSharpCode.SharpZipLib.dll gearbeitet? Hab mir die alternativ mal schnell gedownloaded, nur leider ohne jegliche doku . Mfg Gateway Zitieren
noobvb.net Geschrieben 3. August 2009 Geschrieben 3. August 2009 Hi Gateway_man, muss es zwingend über Gzipstream sein? Sonst kannst du doch auch 7zip als commandline version ausführen und darin zippen. Lässt sich meines wissens auch einstellen, wie groß die Kommpression sein soll Gruß noob Zitieren
chrixko Geschrieben 3. August 2009 Geschrieben 3. August 2009 Hallo, hatte das gleiche Problem, hab eine gute Komponente vom Microsoft-Interop-Team gefunden : DotNetZip Library - Home Beispiele sind leicht verständlich und die Komponente ist auch im Gesamten sehr einfach anzuwenden. Zitieren
Gateway_man Geschrieben 4. August 2009 Autor Geschrieben 4. August 2009 Hi Gateway_man, muss es zwingend über Gzipstream sein? Sonst kannst du doch auch 7zip als commandline version ausführen und darin zippen. Lässt sich meines wissens auch einstellen, wie groß die Kommpression sein soll Gruß noob Nein es muss nicht unbedingt der Gzipstream sein, jedoch sollte es bei möglichkeit eine Bibliothek sein, welche ich in meine Application als Verweis integrieren kann. Deine Alternative macht mich wieder total abhängig, da man dann immer 7zip installiert haben müsste. @ chrixko: Danke scheint was brauchbares zu sein, werds bei Zeit mal anschaun. Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.