SharpZipLib est une bibliothèque de compression de fichier pour C # et d'autres langages de programmation NET , offrant des fonctions de traitement des formats ZIP , GZIP , TAR et BZIP2 . . La bibliothèque dispose d' une interface très simple, qui vous permet de zipper un fichier avec seulement quelques appels de fonction. Après la construction du reste de votre programme - en supposant que votre projet est autre chose qu'un utilitaire de passer comme un éclair de ligne de commande - inclure la bibliothèque SharpZipLib et créer une fonction compresser , qui peut ensuite être appelé à partir d' ailleurs dans votre code. Instructions
1
Créer en-tête de la fonction. Il devrait ressembler à ceci :
public static void Zip ( chaîne inputFile , chaîne outputFile )
Cela définit le nom et les paramètres de la fonction. En supposant que vous utilisez le code ci-dessus exactement comme écrit , vous pourrez appeler la fonction , la compression d'un fichier spécifique dans un ZIP, comme ceci:
Zip ( " image.jpg ", " image.zip " ) ;
2
Début le corps de la fonction , en déclarant les variables nécessaires et les instances d'objets. Il devrait ressembler à ceci :
{
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 entrée = new ZipEntry ( Path.GetFileName ( inputFile ) ) ;
zipOutStream.PutNextEntry ( entrée ) ;
taille de int;
crée deux FileStreams pour les fichiers d'entrée et de sortie, et puis un ZipOutputStream basé sur le FileStream de sortie que vous venez de déclarer . Il est suivi par quelques variables pour manipuler numéros dans la viande de la fonction venir jusqu'à la prochaine , et un couple pour stocker le chemin du fichier de sortie .
3
Entrez la viande de la fonction - - un " do ... while " boucle qui lit les données et le comprime :
faire
{
taille
= fileStreamIn.Read (buffer , 0, tampon . longueur) ;
zipStreamOut.Write (buffer , 0 , taille) ;
} while ( taille > 0);
fera défiler le fichier, un octet à la fois , nourrir les données à la fonction "Write" de zipStreamOut . Le processus se répète jusqu'à la fin du fichier est atteinte et le passer comme un éclair est terminée.
4
Fermez le zip et FileStreams , et mettre fin à la fonction , ranger tout fonction est maintenant terminée et peut être utilisé dans votre programme comme vous le souhaitez .