tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
6
ZUGRIFFE
580
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    Avatar von Muepe32
    Muepe32 Muepe32 ist offline Mitglied Brokat
    Registriert seit
    Mar 2011
    Beiträge
    354
    Hallo zusammen

    Ich versuche mich momentan gerade an der Klasse System.IO.Packaging.ZipPackage und möchte gerne eine Datei in ein Archiv abspeichern und natürlich auch bisschen komprimieren. Die Funktion dazu sieht relativ simpel aus:
    Code csharp:
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    
            public static void CompressFiles(string zipFile, params string[] filesToPack)
            {
                var pkg = ZipPackage.Open(zipFile, FileMode.Create) as ZipPackage;
                foreach (var s in filesToPack)
                {
                    var uriName = Path.GetFileName(s);
                    var uri = PackUriHelper.CreatePartUri(new Uri(uriName, UriKind.RelativeOrAbsolute));
                    var part = pkg.CreatePart(uri, "video/avi", CompressionOption.Maximum);
                    var bytes = File.ReadAllBytes(s);
                    part.GetStream().Write(bytes, 0, bytes.Length);
                }
     
                pkg.Close();
            }

    Ich speichere eine unkomprimierte AVI-Datei mit 69 MB Grösse in das Archiv. Mit WinRAR bekomm ich daraus eine ZIP-Datei der Grösse 45 MB. Die entstehende ZIP-Datei mit oben geposteter Funktion ist 71 MB gross.

    Daher meine Frage: Ist es Absicht, dass die ZipPackage-Klasse absolut überhaupt nicht komprimiert (im Gegenteil) obwohl die Datei super komprimierbar ist? Oder mache ich einfach etwas falsch...

    Gruss
    Muepe
     
    Viele Tutorials und Artikel zur Programmierung unter Windows mit C++ und C#. Tägliche Updates und Antworten auf eure Fragen:
    Win32Easy - Blog
    Es würde mich freuen, wenn ihr einen Kommentar postet!

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Hi.

    Warum tust du dir die ZipPackage Klasse an?

    Nimm doch einfach DotNetZip oder auch SharpZipLib.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    Avatar von Shakie
    Shakie Shakie ist offline Mitglied Diamant
    Registriert seit
    May 2004
    Ort
    Europa
    Beiträge
    2.048
    Aus der MSDN:
    For the default ZipPackage derived class, the CreatePart method only supports two compressionOption values, NotCompressed or Normal compression. Other CompressionOption values of Maximum, Fast, or SuperFast use Normal compression.
    Und wenn man sich das hier durchließt, dann sieht es so aus, als würdest du nicht viel mehr herausholen können als die 71 MB.
     
    hihi = -h²

  4. #4
    Avatar von Muepe32
    Muepe32 Muepe32 ist offline Mitglied Brokat
    Registriert seit
    Mar 2011
    Beiträge
    354
    @deepthroat: ich möchte so wenige externe Bibliotheken verwenden wie möglich, da dies immer Probleme mit den Lizenzen geben kann wenn man sie kommerziell verwendet.

    Ich werde dann wohl mal meine eigene Implementation auf zLib basierend machen.
     
    Viele Tutorials und Artikel zur Programmierung unter Windows mit C++ und C#. Tägliche Updates und Antworten auf eure Fragen:
    Win32Easy - Blog
    Es würde mich freuen, wenn ihr einen Kommentar postet!

  5. #5
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Muepe32 Beitrag anzeigen
    @deepthroat: ich möchte so wenige externe Bibliotheken verwenden wie möglich, da dies immer Probleme mit den Lizenzen geben kann wenn man sie kommerziell verwendet.
    DotNetZip steht unter der Ms-PL. Siehe http://de.wikipedia.org/wiki/Microsoft_Public_License

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  6. #6
    Avatar von Muepe32
    Muepe32 Muepe32 ist offline Mitglied Brokat
    Registriert seit
    Mar 2011
    Beiträge
    354
    Ja, das habe ich gesehen, mich stört da irgendwie der Artikel:
    Bei Weiterverbreitung in compilierter Form muss eine Lizenz gewählt werden, die der Ms-PL nicht widerspricht.
    Was würde das jetzt im kommerziellen Fall bedeuten? Ein simpler Verkauf mit sichtbarem Vermerk in der Applikation, dass DotNetZip verwendet wurde und entsprechendem (C) wäre passabel? Oder wie muss ich den Teil "..muss eine Lizenz gewählt werden..." im Zusammenhang mit Verkauf verstehen?
     
    Viele Tutorials und Artikel zur Programmierung unter Windows mit C++ und C#. Tägliche Updates und Antworten auf eure Fragen:
    Win32Easy - Blog
    Es würde mich freuen, wenn ihr einen Kommentar postet!

  7. #7
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.168
    Zitat Zitat von Muepe32 Beitrag anzeigen
    Ja, das habe ich gesehen, mich stört da irgendwie der Artikel:
    Bei Weiterverbreitung in compilierter Form muss eine Lizenz gewählt werden, die der Ms-PL nicht widerspricht.
    Das versteht sich doch aber fast von selbst, das du keine Lizenz einsetzen kannst, die einem der Punkte der Ms-PL direkt widerspricht.

    Z.B. kannst du keine Lizenz wählen die fordert, dass Trademarks, Logos oder Namen von (Mit-)Schöpfern jeder verwendeten Software immer ohne Erlaubnis verwendet werden müssen, da das direkt Punkt 3. (A) der Ms-PL widerspricht. (http://www.opensource.org/licenses/ms-pl)
    Zitat Zitat von Muepe32 Beitrag anzeigen
    Was würde das jetzt im kommerziellen Fall bedeuten? Ein simpler Verkauf mit sichtbarem Vermerk in der Applikation, dass DotNetZip verwendet wurde und entsprechendem (C) wäre passabel?
    Ich sehe nicht wo das gefordert wäre. Schaden kann es sicherlich nicht.

    Gruß
     
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

Ähnliche Themen

  1. Allgemeine Kompression für das Internet
    Von sight011 im Forum Videoschnitt, Videotechnik & -produktion
    Antworten: 1
    Letzter Beitrag: 23.05.09, 15:00
  2. PAQ Kompression
    Von celph_titled im Forum Java
    Antworten: 3
    Letzter Beitrag: 06.03.09, 16:41
  3. gSOAP mit gzip-Kompression
    Von touchy im Forum C/C++
    Antworten: 0
    Letzter Beitrag: 13.01.08, 19:56
  4. Handy SMS Kompression
    Von Thomas Darimont im Forum Coders Talk
    Antworten: 6
    Letzter Beitrag: 25.08.04, 13:00
  5. zlib kompression
    Von Rev im Forum PHP
    Antworten: 0
    Letzter Beitrag: 02.03.02, 13:33