1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| public static void compression(string DirectoryToZip, string TheZipFile)
{
int i; // index des fichiers de filestozip()
int mylength; // longueur fichier
// recupère le nom complet de tous les fichiers dans filestozip()
string[] filestozip = Directory.GetFiles(DirectoryToZip, "*.*", SearchOption.AllDirectories);
// mydirname : nom de la directory a compresser
string mydirname = new DirectoryInfo(DirectoryToZip).Name;
// on cree la sortie zip
ZipOutputStream ZipStream = new ZipOutputStream(System.IO.File.Create(TheZipFile));
string Password = @"a";
if (!String.IsNullOrEmpty(Password))
ZipStream.Password = Password;
// on fait le boulot pour tous les fichiers
for (i = 0; i <= Information.UBound(filestozip); i++)
{
// on ouvre le fichier en lecture
FileStream fs = System.IO.File.OpenRead(filestozip[i]);
mylength = (int)fs.Length;
// Tableau de byte, de la taille du fichier à lire
byte[] buffer = new byte[mylength + 1];
// Lecture du fichier dans buffer puis fermeture
fs.Read(buffer, 0, mylength);
fs.Close();
// definition de l'entrée dans le zip
ZipEntry entry = new ZipEntry(mydirname + filestozip[i].Replace(DirectoryToZip, ""));
// On ajoute la nouvelle entrée
ZipStream.PutNextEntry(entry);
// On crée la nouvelle entrée dans l'archive
ZipStream.Write(buffer, 0, mylength);
}
// On ferme le flux
ZipStream.Finish();
ZipStream.Close();
} |
Partager