Wie man Zip-Dateien mit SharpZipLib

February 20

SharpZipLib ist eine Datei-Komprimierung-Bibliothek für c# und andere NET Programmiersprachen, die Funktionen für den Umgang mit BZIP2, TAR, ZIP und GZIP Formate. Die Bibliothek verfügt über eine sehr einfache Schnittstelle, so dass Sie eine Datei mit nur wenigen Funktionsaufrufen zip. Nach dem Bau des Rest des Programms--vorausgesetzt, dass Ihr Projekt etwas mehr als ein Befehlszeilenprogramm zumachenden ist--die SharpZipLib Bibliothek und erstellen eine zumachenden Funktion, die dann an anderer Stelle im Code aufgerufen werden kann.

Anweisungen

1 Erstellen Sie die Funktion Header. Es sollte wie folgt aussehen:

privatevoid Zip (Zeichenfolge InputFile, Zeichenfolge OutputFile)

Dies definiert der Funktion Name und Parameter. Vorausgesetzt, dass Sie den obigen Code verwenden, genau wie geschrieben, können um die Funktion aufzurufen Sie komprimieren einer bestimmten Datei in eine ZIP-Datei wie folgt:

Zip ("image.jpg", "image.zip");

2 Beginnen Sie den Hauptteil der Funktion, die notwendigen Variablen und Objektinstanzen. Es sollte wie folgt aussehen:

{

FileStream fileStreamIn = new FileStream

(inputFile, FileMode.Open, FileAccess.Read);

FileStream fileStreamOut = new FileStream

(outputFile, FileMode.Create, FileAccess.Write);

ZipOutputStream zipStreamOut = new ZipOutputStream(fileStreamOut);

byte[] buffer = new byte;

ZipEntry entry = new ZipEntry(Path.GetFileName(inputFile));

zipOutStream.PutNextEntry(entry);

int size;

Dies erzeugt zwei FileStreams für die Input- und Output-Dateien, und dann ein ZipOutputStream basierend auf der Ausgabe FileStream, die Sie gerade erklärt. Es folgt ein paar Variablen für den Umgang mit Zahlen in das Fleisch der Funktion weiter, und ein paar für die Speicherung der Ausgabedatei Weg kommen.

3 Geben Sie das Fleisch der Funktion--eine "do…while"-Schleife, die in den Daten liest und komprimiert:

do

{

size = fileStreamIn.Read(buffer, 0, buffer.Length);

zipStreamOut.Write(buffer, 0, size);

} while (size > 0);

Dies wird durch die Datei, die ein Byte zu einem Zeitpunkt Einspeisung der Daten des ZipStreamOut "Schreiben" Funktion verstärken. Der Prozess wird wiederholt, bis das Ende der Datei erreicht ist und das Komprimieren wird abgeschlossen.

4 Schließen Sie das Zip und FileStreams und EndFunction, alles aufräumen:

zipStreamOut.Close();

fileStreamOut.Close();

fileStreamIn.Close();

}

Die Funktion ist jetzt fertig und kann in Ihrem Programm beliebig verwendet werden.