SharpZipLib är en fil komprimering bibliotek för C # och andra NET programmeringsspråk , vilket ger funktioner för hantering av ZIP , gzip , tjära och BZIP2 format . . Biblioteket har ett mycket enkelt gränssnitt , så att du kan zip- fil med bara några funktionsanrop . Efter konstruera resten av ditt program - förutsatt att ditt projekt är något mer än ett kommando - line zippa verktyg - innehålla SharpZipLib biblioteket och skapa en zippa funktion , som sedan kan anropas från andra håll i din kod . Instruktioner
1
Skapa funktionen header . Det bör se ut ungefär så här :
public static void Zip ( sträng indatafil , string Outputfile ) katalog
Detta definierar funktionens namn och parametrar . Förutsatt att du använder ovanstående kod exakt som det står , kommer du att kunna anropa funktionen , komprimera en specifik fil i en ZIP , som den här :
Zip ( " image.jpg " , " image.zip " ) ;
2
Börja kroppen av funktionen , förklarar de nödvändiga variablerna och instanser objekt . Det bör se ut ungefär så här :
{
FileStream fileStreamIn = new FileStream
( indatafil , FileMode.Open , FileAccess.Read ) ;
FileStream fileStreamOut = new FileStream
( Outputfile , FileMode.Create , FileAccess.Write ) ;
ZipOutputStream zipStreamOut = ny ZipOutputStream ( fileStreamOut ) ;
byte [ ] buffer = new byte ;
ZipEntry post = new ZipEntry ( Path.GetFileName ( indatafil ) ) ;
zipOutStream.PutNextEntry ( post ) ,
int storlek ,
skapar två FileStreams för input och filer utgång, och sedan en ZipOutputStream baserad på den utgående FileStream du just förklarade . Detta följs av några variabler för att hantera siffror i köttet av funktionen kommer upp nästa , och ett par för att lagra utdatafilen väg .
3
Ange köttet av funktionen - - en " do ... medan " loop som läser in data och komprimerar det :
do
{
size = fileStreamIn.Read ( buffert , 0 , buffert . Length ) ;
zipStreamOut.Write ( buffert , 0 , storlek ) ,
} while ( storlek > 0 ) ;
Detta kommer att gå igenom ärendet , en byte i taget , mata data till zipStreamOut s " Skriv " -funktion . Processen upprepas tills slutet av filen har nåtts och zippa är klar .
4
Stäng zip och fileStreams , och avsluta funktionen , städa allt Funktionen är nu klar och kan användas i ditt program och returresa .