IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Entrée/Sortie Java Discussion :

[ZIP] Erreur à la décompression


Sujet :

Entrée/Sortie Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Par défaut [ZIP] Erreur à la décompression
    Bonjour,

    j'ai un fichier ZIP avec à l'intérieur des fichiers XML. Lorsque je décompresse cette archive, j'ai ce message:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    invalid entry size (expected 4294967295 but got 36020 bytes)
    Est ce que quelqu'un sait d'où cela peut venir?

    Merci

    PS : lorsque je décompresse une archive ZIP contenant un répertoire puis des fichiers dans ce dossier, cela fonctionne...

  2. #2
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    120
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 120
    Par défaut
    je met mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
     
    public static boolean decompress(final File file, final File folder, final boolean deleteZipAfter) throws IOException 
    	 {
    		 boolean bSuccess = false;
     
    		 Logger logger = Logger.getLogger("LogDezip");
    		 try
             {
                 File dirLog = new File("C:\\Applications\\Decompression\\logs\\");
                 if(!dirLog.exists())
                     dirLog.mkdirs();
                 File fichierlog = new File((new StringBuilder(String.valueOf(dirLog.getPath()))).append(File.separator).append("dezip.log").toString());
                 if(!fichierlog.exists())
                     fichierlog.createNewFile();
                 FileHandler fileHandler = new FileHandler(fichierlog.getPath());
                 logger.addHandler(fileHandler);
                 logger.setLevel(Level.ALL);
                 SimpleFormatter simpleFormatter = new SimpleFormatter();
                 fileHandler.setFormatter(simpleFormatter);
                 //logger.log(Level.INFO, (new StringBuilder("Fichier : ")).append(file.getName()).toString());
             }
             catch(SecurityException e)
             {
                 logger.log(Level.INFO, (new StringBuilder("Acc\350s au refus\351 au fichier.")).append(file.getName()).toString());
                 e.printStackTrace();
             }
             catch(IOException e)
             {
                 e.printStackTrace();
             }
     
             // Vérification du fichier ZIP et du répertoire de destination
     		 boolean isZipExist = MyLib.existsFile(file.toString());
     		 Image img = new Image(file.toString());
     		 String sExtension = img.getNomFichierAvecExtension();
     		 // Vérification de l'existance du répertoire destination
     		 boolean isDestExist = MyLib.existsDir(folder.toString());
     
     		 if(isZipExist)
     		 {
     			 if(isDestExist)
     			 {
    				 final ZipInputStream zis = new ZipInputStream(new BufferedInputStream(new FileInputStream(file.getCanonicalFile())));
    				 ZipEntry ze;
    				 try
    				 {
    					 // Parcourt tous les fichiers
    					 while (null != (ze = zis.getNextEntry())) 
    					 {
    						 /*
    						 if (!ze.isDirectory()) 
    						 {
    							 logger.log(Level.INFO, (new StringBuilder("Fichier : ")).append(ze.getName()).toString());
    						 }
    						 */
    						 //System.out.println("Fichier dézippé : "+ze);
    						 final File f = new File(folder.getCanonicalPath(), ze.getName());
    						 if (f.exists())
    							 f.delete();
     
    						 // Création des dossiers
    						 if (ze.isDirectory()) 
    						 {
    							 f.mkdirs();
    							 continue;
    						 }
    						 f.getParentFile().mkdirs();
    						 final OutputStream fos = new BufferedOutputStream(new FileOutputStream(f));
     
    						 // Ecriture des fichiers
    						 try
    						 {
    							 try
    							 {
    								 final byte[] buf = new byte[8192];
    								 int bytesRead;
    								 while (-1 != (bytesRead = zis.read(buf)))
    									 fos.write(buf, 0, bytesRead);
    							 } finally {
    								 bSuccess = true;
    								 fos.close();
    							 }
    						 } 
    						 catch (final IOException ioe) 
    						 {
    							 logger.log(Level.SEVERE, (new StringBuilder("ERROR : Fichier KO : ")).append(file.getName()).toString());
    			                 logger.log(Level.SEVERE, (new StringBuilder(" ERROR : ")).append(ioe).toString());
    			                 logger.log(Level.SEVERE, (new StringBuilder(" MESSAGE : ")).append(ioe.getMessage()).toString());
     
    							 f.delete();
    							 throw ioe;
    						 }
    					 }
    				 } 
    				 finally
    				 {
    					 //logger.log(Level.INFO, (new StringBuilder("Fichier correctement décompressé : ")).append(file.getName()).toString());
    					 zis.close();
    				 }
    				 if (deleteZipAfter)
    					 file.delete();
     			 }
     			 else
     			 {
     				logger.log(Level.SEVERE, (new StringBuilder(" ERROR : le repertoire de destination n'existe pas.")).toString());
     			 }
    		 }
     		 else
     		 {
     			logger.log(Level.SEVERE, (new StringBuilder(" ERROR : le fichier ZIP n'existe pas.")).toString());
     		 }
     		 return bSuccess;
    	 }

Discussions similaires

  1. ZIP - obliger à se décompresser dans un dossier
    Par punky_brooster dans le forum Autres Logiciels
    Réponses: 0
    Dernier message: 18/09/2011, 22h42
  2. Charger un zip et le décompresser
    Par vizlebiz dans le forum Servlets/JSP
    Réponses: 6
    Dernier message: 06/06/2007, 15h46
  3. [Zip] Erreur avec la méthode add() de PclZip
    Par Anduriel dans le forum Bibliothèques et frameworks
    Réponses: 8
    Dernier message: 20/01/2007, 16h42
  4. 7-Zip - Problème de décompression en ligne de commande
    Par Lorponos dans le forum Autres Logiciels
    Réponses: 2
    Dernier message: 26/07/2006, 15h07
  5. Réponses: 1
    Dernier message: 23/10/2002, 13h40

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo