Come Zip file utilizzando SharpZipLib

February 20

SharpZipLib è una libreria di compressione di file per C # e altri linguaggi di programmazione .NET, che fornisce funzioni per la gestione ZIP, GZIP, TAR e formati bzip2. La biblioteca dispone di un'interfaccia molto semplice, che consente di comprimere un file con solo poche chiamate di funzione. Dopo la costruzione del resto del programma - supponendo che il progetto è qualcosa di più di una riga di comando zippare utilità - includere la libreria SharpZipLib e creare una funzione zippare, che possono poi essere chiamato da altrove nel codice.

istruzione

1 Creare intestazione della funzione. Esso dovrebbe essere simile a questo:

Zip public static void (string fileInput, stringa fileOutput)

Questo definisce il nome ei parametri della funzione. Supponendo di utilizzare il codice precedente esattamente come scritto, si sarà in grado di chiamare la funzione, la compressione di un file specifico in un ZIP, come questo:

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

2 Iniziare il corpo della funzione, dichiarando le variabili necessarie e istanze di oggetti. Esso dovrebbe essere simile a questo:

{

FileStream fileStreamIn = new FileStream

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

FileStream fileStreamOut = nuovo FileStream

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

ZipOutputStream zipStreamOut = new ZipOutputStream (fileStreamOut);

byte [] Buffer = new byte;

ingresso ZipEntry = new ZipEntry (Path.GetFileName (fileInput));

zipOutStream.PutNextEntry (ingresso);

int size;

Questo crea due filestreams per i file di input e output, e poi una ZipOutputStream basa sulla FileStream output appena dichiarato. Questa è seguita da alcune variabili per la gestione numeri nella carne della funzione provenienti accanto, e una coppia per memorizzare il percorso del file di output.

3 Inserire la carne della funzione - un "do ... while" che legge i dati e lo comprime:

do

{

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

zipStreamOut.Write (buffer, 0, dimensioni);

} While (dimensione> 0);

Questo farà un passo attraverso il file, un byte alla volta, alimenta i dati per la funzione "Write" di zipStreamOut. Il processo viene ripetuto fino a quando viene raggiunta la fine del file e zippare è completata.

4 Chiudere la zip e filestreams, e terminare la funzione, mettere in ordine tutto in su:

zipStreamOut.Close();

fileStreamOut.Close ();

fileStreamIn.Close ();

}

La funzione è ora completo e può essere utilizzato nel programma, se lo desideri.