SharpZipLib är en fil komprimering bibliotek för C # och andra . NET programmeringsspråk , vilket ger funktioner för hantering av ZIP , GZIP , TAR och BZIP2 format . Biblioteket har ett mycket enkelt gränssnitt som låter dig zip en fil med endast ett fåtal funktionsanrop . Efter att konstruera resten av ert program-under förutsättning att projektet är något annat än ett kommandoradsverktyg zippa verktyget-innehålla SharpZipLib biblioteket och skapa en zippa funktion , som sedan kan anropas från andra håll i koden .
1 .
Skapa funktionen rubrik. Det borde se ut ungefär så här :
public void Zip ( sträng indatafil , sträng Outputfile )
Detta definierar funktionens namn och parametrar. Förutsatt att du använder ovanstående kod exakt som det står skrivet , kommer du att kunna anropa funktionen , komprimera en viss fil till en ZIP , så här :
Zip ( " bild . jpg " , " image. zip " ) .
2
Börja kroppen av funktionen , att förklara de nödvändiga variabler och instanser objekt . Det borde se ut ungefär så här :
{
FileStream fileStreamIn=new FileStream
( indatafil , fileMode . Öppna , FileAccess. Read ) ,
FileStream fileStreamOut=new FileStream
( utdatafil , FileMode. Create , FileAccess. Write ) ,
ZipOutputStream zipStreamOut=nya ZipOutputStream ( fileStreamOut ) ,
byte [ ] buffer=new byte ;
ZipEntry entry=ny ZipEntry ( Path. GetFileName ( indatafilen )) ;
zipOutStream. PutNextEntry ( post ) ;
int storlek ;
Detta skapar två FileStreams för in-och utgående filer och sedan en ZipOutputStream baserad på utgången FileStream du just sagt . Detta följs av några variabler för hantering nummer i kött av funktionen kommer härnäst , och ett par för att lagra utdatafilen väg .
3 .
Ange kött av funktionen-En "do . . . medan " loop som läser i data och komprimerar det :
göra
{
size=fileStreamIn. Read ( buffert , 0 , buffer. Length ) ,
zipStreamOut. Write ( buffert , 0 , storlek ) ;
} while ( storlek > 0 ) ;
Detta kommer att gå igenom handlingarna , ett byte i taget , mata data till zipStreamOut 's "Write " funktionen . Processen kommer att upprepa till slutet av filen har nåtts och zippa är klar
4
stänga dragkedjan och fileStreams och avsluta funktionen , städa upp allt .
zipStreamOut. Close () ;
fileStreamOut. Close () ;
fileStreamIn. Close () ;
}
Funktionen är nu klar och kan användas i ditt program som önskas.
Previous:nothing Next:sql scripting tutorial