Impossible de déplacer un fichier après décompression [Résolu]

Signaler
Messages postés
43
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
7 mai 2010
-
Messages postés
43
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
7 mai 2010
-
Bonjour,

J'utilise le code suivant pour décompresser les .zip:

using

java.util;
using

java.util.zip;
using

java.io;
using

System.IO;

public
List<
ZipEntry> GetZippedFiles(
ZipFile zipfil){

   List<
ZipEntry> lstZip =
new
List<
ZipEntry>();

   Enumeration zipEnum = zipfil.entries();

   while (zipEnum.hasMoreElements())   {

      ZipEntry zip = (
ZipEntry)zipEnum.nextElement();      lstZip.Add(zip);

   }

   return lstZip;}

public
void extraire(
string zipFileName,
string destinationPath,
out
Exception excep){

   excep =

null;

   ZipFile zipfile =
new
ZipFile(zipFileName);

   List<
ZipEntry> zipFiles = GetZippedFiles(zipfile);

   foreach (
ZipEntry zipFile
in zipFiles)   {

 if (!zipFile.isDirectory())      {

InputStream s = zipfile.getInputStream(zipFile);

         try {

                  Directory.CreateDirectory(destinationPath +
"\" +

                  Path.GetDirectoryName(zipFile.getName()));

                  FileOutputStream dest =
new

                  FileOutputStream(
Path.Combine(destinationPath +
"\" +

                  Path.GetDirectoryName(zipFile.getName()),

                  Path.GetFileName(zipFile.getName())));

                  try{

                           int len = 0;

                           sbyte[] buffer =
new
sbyte[7168];

                           while ((len = s.read(buffer)) >= 0)                          { dest.write(buffer, 0, len);}

                     }

         catch (
Exception e) {excep = e;}

         finally {dest.close();}   }

   catch (
Exception e) {excep = e;}

   finally {s.close();}}

}

J'arrive bien à décompresser mais quand je veux déplacer le .zip, j'ai un message indiquant que le fichier est utilisé par un autre programme.

Que puis-je faire ?

Merci d'avance.

2 réponses

Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
20
Fermer tes streams ...

Utilise des using sur tes streams.

using (FileOutputStream dest = new FileOutputStream())
{}

::|The S@ib|::
MVP C#.NET
Messages postés
43
Date d'inscription
lundi 17 octobre 2005
Statut
Membre
Dernière intervention
7 mai 2010

J'ai utilisé un zipfile.close() et ça fonctionne bien aussi.
Mais ta réponse semble meilleure.

Merci