Comment Zip Files Utilisation SharpZipLib

SharpZipLib est une bibliothèque de compression de fichier pour C # et d'autres langages de programmation .NET, fournissant des fonctions pour la manipulation ZIP, GZIP, TAR et formats BZIP2. La bibliothèque dispose d'une interface très simple, vous permettant de compresser un fichier avec seulement quelques appels de fonctions. Après avoir construit le reste de votre programme - en supposant que votre projet est quelque chose de plus qu'une ligne de commande zipping utilitaire - inclure la bibliothèque SharpZipLib et créer une fonction zipping, qui peut alors être appelé à partir d'ailleurs dans votre code.

Instructions

1 Créer en-tête de la fonction. Il devrait ressembler à ceci:

Zip public static void (string InputFile, string outputFile)

Ceci définit le nom et les paramètres de la fonction. En supposant que vous utilisez le code ci-dessus exactement comme écrit, vous serez en mesure d'appeler la fonction, la compression d'un fichier spécifique dans un ZIP, comme ceci:

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

2 Commencer le corps de la fonction, en déclarant des variables nécessaires et les instances d'objet. 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 int;

Cela crée deux FileStreams pour les fichiers d'entrée et de sortie, puis un ZipOutputStream basé sur le FileStream de sortie que vous venez de déclarer. Il est suivi par quelques variables pour le traitement des nombres dans la viande de la fonction venir jusqu'à la prochaine, et un couple pour stocker le chemin de fichier de sortie.

3 Entrez la viande de la fonction - un «do ... while" qui lit dans les données et le comprime:

do

{

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

zipStreamOut.Write (buffer, 0, taille);

} While (taille> 0);

Ce sera l'étape dans le fichier, un octet à la fois, l'alimentation des données à la fonction "Write" de zipStreamOut. Le processus se répète jusqu'à la fin du fichier est atteinte et que le zipping est terminé.

4 Fermez le zip et fileStreams, et mettre fin à la fonction, rangement tout en place:

zipStreamOut.Close();

fileStreamOut.Close ();

fileStreamIn.Close ();

}

La fonction est maintenant terminée et peut être utilisé dans votre programme comme vous le souhaitez.