J'utilise actuellement dans un programme C# la bibliothèque ICSharpCode.SharpZipLib.Zip pour compresser et décompresser un ensemble de fichiers.
Je rencontre un problème lors de la décompression de certains fichiers EXE.
Le message affiché : Size mismatch: 579019;600056 <-> 579019;600053.
J'ignore d'où cela peut provenir.
Si vous avez une solution au problème...
Merci d'avance.
Ci-dessous une partie du code source.
*********
...
try {
// Definition du repertoire d'extraction
Directory.SetCurrentDirectory(SousRepertoireTravail);
ZipInputStream ZipIn = new ZipInputStream(File.OpenRead(args[0]));
ZipEntry entry;
while ((entry = ZipIn.GetNextEntry()) != null)
{
if(entry.IsDirectory) continue;
string directoryName = Path.GetDirectoryName(entry.ToString());
// Creation du repertoire s'il n'existe pas
if(directoryName!="")
if (!Directory.Exists(directoryName))
Directory.CreateDirectory(directoryName);
// Creation du fichier à extraire
FileStream fs = File.Create(entry.ToString(),2048);
byte[] data = new byte[2048];
int size;
while ((size = ZipIn.Read(data, 0, data.Length))>0)
fs.Write(data, 0, size);
fs.Flush();
fs.Close();
}
ZipIn.Close();
}
catch (Exception e)
{
throw new Exception(NOM_CLASSE + " Echec de decompression de l'archive. Exception : " + e.Message);
}
...
**********
Salut,
Bon en fait c'est assez dur de répondre à cette quesion, car le contenu de la dll n'est pas connu de tout le monde (aucune idée comment elle fonctionne!). Je me demande si tu ferais pas mieux de poser ta question sur un forum dedié à cette dll (doit bien y'en avoir un sur le site de l'éditeur, non?)
Autres infos : si tu travailles avec le framework v2, tu peux utiliser les classes présentent dans le namespace System.IO.Compression.