Fly57
Messages postés29Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention15 avril 2005
-
20 janv. 2004 à 20:47
jululu
Messages postés18Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention14 juin 2009
-
11 juin 2009 à 12:14
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
jululu
Messages postés18Date d'inscriptionlundi 16 mars 2009StatutMembreDernière intervention14 juin 2009 11 juin 2009 à 12:14
Bonjour a tous, Une petite question désolé je sui un vrai bouler comment fait t'on pour la compression de dossier ?? j'ai utilisé le code suivant il m'afiche aucune erreur mais je n'ai pas mon dossier .zip a la sortie :( si vous pouviez me filé un cou de main merci :)
// Flux qui va créer l'archive
ZipOutputStream ZipStream = new ZipOutputStream(File.Create(ZipName));
// On indique le niveau d ecompression
// 0 -> Compression minimale
// 9 -> Compression maximale
ZipStream.SetLevel(0);
// Pour chaque fichier
foreach (string file in files)
{
// On récupère le chemin + nom du fichier
string file_tozip = file;
// Stream qui va lire le fichier
FileStream fs = File.OpenRead(file_tozip);
// Tableau de byte, de la taille du fichier à lire
byte[] buffer = new byte[fs.Length];
// Lecture
fs.Read(buffer, 0, buffer.Length);
// On crée une nouvelle entrée dans l'archive
ZipEntry entry = new ZipEntry(Path.GetFileName(file_tozip));
// On ajoute la nouvelle entrée
ZipStream.PutNextEntry(entry);
ZipStream.Write(buffer, 0, buffer.Length);
//On ferme le flux de lecture
fs.Close();
}
// On ferme le flux
ZipStream.Finish();
ZipStream.Close();
xflo
Messages postés2Date d'inscriptionlundi 7 juin 2004StatutMembreDernière intervention19 octobre 2006 12 juin 2006 à 16:20
Lors de la lecture des rep dans le zip, le caractere: 'î' est lut comme ça: '/f', la creation du reperoire tombe alors en erreur. Avez vous une solution ?
Merci
ptipaf23
Messages postés1Date d'inscriptionlundi 15 mars 2004StatutMembreDernière intervention15 mars 2004 15 mars 2004 à 12:05
Salut
j'ai besoin d'un petit renseignement. je compresse un repertoire entier et ca marche super bien.
Je voudrai juste savoir comment implémenter le degré de compression que je souhaite(pour augmenter la reduction de la taille de mon zip).
Est-ce que c'est possible ?
gg00xiv
Messages postés656Date d'inscriptionmercredi 22 août 2001StatutMembreDernière intervention11 mars 200513 22 févr. 2004 à 18:16
exact, j'avais pas fait gaffe, oups :)
taharban
Messages postés56Date d'inscriptionlundi 7 juillet 2003StatutMembreDernière intervention14 novembre 2007 17 févr. 2004 à 12:30
un petit bug, il faut refermer tous les streams ouverts.
Il faut rajouter :
if(fos != null){ fos.Close(); }
avant de faire :
fos = new FileStream(...);
sinon tous les fichiers dézippés (sauf le dernier) sont lockés jusqu'à la fermeture du programme.
Fly57
Messages postés29Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention15 avril 2005 20 janv. 2004 à 21:04
ça marche nickel :D
merci pour ta reponse ultra rapide ! :)
et aussi pour toutes les sources que tu laisse et qui sont d'un tres grande aide !
- Fly -
gg00xiv
Messages postés656Date d'inscriptionmercredi 22 août 2001StatutMembreDernière intervention11 mars 200513 20 janv. 2004 à 20:51
en fette, tu click droit sur ton projet, tu fe ajouter une reference
ensuite tu selectionne la dll en cliquant sur le bouton parcourir en haut a droite
et puis ok, et la ton using te lachera plus derreur
Fly57
Messages postés29Date d'inscriptionvendredi 3 janvier 2003StatutMembreDernière intervention15 avril 2005 20 janv. 2004 à 20:47
Salut,
pas mal le prog commet tous les autres que tu as deja deposé d'ailleurs,
mais j'ai un petit probleme, je voulais créer un petit installateur pour mes petits programme (en fait c'est surtout pour me passer le temps ..) et donc je stock les fichiers dans un zip, et j'ai un exe qui les sors etc, donc ta source m'est tres utile
seul probleme si je met :
using ICSharpCode.SharpZipLib.Zip;il ne met dit que cet espace de nom n'existe pas, et je viens de voir que tu dis qu'il faut ajouter une reference à la dll, mais j'a trouvé ça nul part dans les menus de Sharp Develop alors bref comment je pourrais faire pour me servir de cette dll ??
j'ai inclut la dll dans le même fichier que l'exe mais ça ne marche pas ...
si tu pouvais m'indiquer comment faire ça sous SharpDevelop, car c'est la seule chose qu'il me manque sinon mon prog est finit
Voila merci d'avance ( même si ta source date et que j'aurais peut-être jamais de reponse, enfin j'espere que si :) )
11 juin 2009 à 12:14
string[] files = Directory.GetFiles(cheminDossier);
string ZipName = "monZip.zip";
// Flux qui va créer l'archive
ZipOutputStream ZipStream = new ZipOutputStream(File.Create(ZipName));
// On indique le niveau d ecompression
// 0 -> Compression minimale
// 9 -> Compression maximale
ZipStream.SetLevel(0);
// Pour chaque fichier
foreach (string file in files)
{
// On récupère le chemin + nom du fichier
string file_tozip = file;
// Stream qui va lire le fichier
FileStream fs = File.OpenRead(file_tozip);
// Tableau de byte, de la taille du fichier à lire
byte[] buffer = new byte[fs.Length];
// Lecture
fs.Read(buffer, 0, buffer.Length);
// On crée une nouvelle entrée dans l'archive
ZipEntry entry = new ZipEntry(Path.GetFileName(file_tozip));
// On ajoute la nouvelle entrée
ZipStream.PutNextEntry(entry);
ZipStream.Write(buffer, 0, buffer.Length);
//On ferme le flux de lecture
fs.Close();
}
// On ferme le flux
ZipStream.Finish();
ZipStream.Close();
12 juin 2006 à 16:20
Merci
15 mars 2004 à 12:05
j'ai besoin d'un petit renseignement. je compresse un repertoire entier et ca marche super bien.
Je voudrai juste savoir comment implémenter le degré de compression que je souhaite(pour augmenter la reduction de la taille de mon zip).
Est-ce que c'est possible ?
22 févr. 2004 à 18:16
17 févr. 2004 à 12:30
Il faut rajouter :
if(fos != null){ fos.Close(); }
avant de faire :
fos = new FileStream(...);
sinon tous les fichiers dézippés (sauf le dernier) sont lockés jusqu'à la fermeture du programme.
20 janv. 2004 à 21:04
merci pour ta reponse ultra rapide ! :)
et aussi pour toutes les sources que tu laisse et qui sont d'un tres grande aide !
- Fly -
20 janv. 2004 à 20:51
ensuite tu selectionne la dll en cliquant sur le bouton parcourir en haut a droite
et puis ok, et la ton using te lachera plus derreur
20 janv. 2004 à 20:47
pas mal le prog commet tous les autres que tu as deja deposé d'ailleurs,
mais j'ai un petit probleme, je voulais créer un petit installateur pour mes petits programme (en fait c'est surtout pour me passer le temps ..) et donc je stock les fichiers dans un zip, et j'ai un exe qui les sors etc, donc ta source m'est tres utile
seul probleme si je met :
using ICSharpCode.SharpZipLib.Zip;il ne met dit que cet espace de nom n'existe pas, et je viens de voir que tu dis qu'il faut ajouter une reference à la dll, mais j'a trouvé ça nul part dans les menus de Sharp Develop alors bref comment je pourrais faire pour me servir de cette dll ??
j'ai inclut la dll dans le même fichier que l'exe mais ça ne marche pas ...
si tu pouvais m'indiquer comment faire ça sous SharpDevelop, car c'est la seule chose qu'il me manque sinon mon prog est finit
Voila merci d'avance ( même si ta source date et que j'aurais peut-être jamais de reponse, enfin j'espere que si :) )
- Fly -