SharpZipLib è una libreria di compressione di file per C # e altri linguaggi di programmazione NET , che fornisce funzioni per la gestione ZIP , GZIP , BZIP2 e TAR . Formati . La biblioteca dispone di un'interfaccia molto semplice , che consente di comprimere un file con poche chiamate di funzione . Dopo aver costruito il resto del programma - supponendo che il vostro progetto è qualcosa di più di un programma di utilità zippare da riga di comando - includere la libreria SharpZipLib e creare una funzione zippare , che possono poi essere chiamato da altri punti del codice . Istruzioni
1
Creare l'intestazione della funzione . Dovrebbe essere qualcosa di simile :
public static void postale ( stringa fileInput , stringa fileOutput ) per
Questo definisce il nome ei parametri della funzione. Supponendo di utilizzare il codice sopra esattamente come scritto , si sarà in grado di chiamare la funzione , la compressione di un file specifico in un ZIP , come questo:
Zip ( " immagine.jpg " , " image.zip " ) ;
2
iniziare il corpo della funzione , che dichiara le variabili necessarie e le istanze degli oggetti . Dovrebbe essere qualcosa di simile :
{
fileStreamIn FileStream = new FileStream
( fileInput , FileMode.Open , FileAccess.Read ) ;
FileStream fileStreamOut = new FileStream
( fileOutput , FileMode.Create , FileAccess.Write ) ;
ZipOutputStream zipStreamOut = new ZipOutputStream ( fileStreamOut ) ;
byte [ ] buffer = new byte ;
ZipEntry entry = new ZipEntry ( Path.GetFileName ( fileInput ) ) ;
zipOutStream.PutNextEntry ( voce);
dimensioni int ;
crea due FileStreams per il file di input e di output , e poi un ZipOutputStream basato sulla FileStream output appena dichiarato . Questo è seguito da alcune variabili per la gestione numeri nella carne della funzione fino a venire avanti , e un paio per memorizzare il percorso del file di output .
3
Inserire la carne della funzione - - un " do ... while" ciclo che legge i dati e lo comprime :
fare
{
dimensione
= fileStreamIn.Read (buffer , 0 , tampone . lunghezza) ;
zipStreamOut.Write (buffer , 0 , size) ;
} while ( size > 0 ) ;
Questo farà un passo attraverso il file , una byte alla volta , alimentando i dati in funzione " Write" di zipStreamOut . Il processo viene ripetuto fino a quando viene raggiunta la fine del file e il zippare è completata .
4
richiudere la cerniera e FileStreams , e terminare la funzione , mettere in ordine tutto funzione è ora completa e può essere utilizzato nel programma , se lo desideri .