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

Collection et Stream Java Discussion :

java.util.zip.ZipException: error in opening zip file


Sujet :

Collection et Stream Java

  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut java.util.zip.ZipException: error in opening zip file
    Bonjour,

    voici le contexte :
    - tous les jours un utilisateur vient déposer un ou plusieurs zip dans un dossier. Mon programme extrait de chaque zip des données contenu dans un fichier particulier. Ce programme fonctionne correctement depuis quelques mois.
    Dans l'ensemble des zip qui ont été soumis au programme 2 posent problème et je ne comprend pas pourquoi.

    Le problème :
    - dans ma classe "Rapport" j'ai un méthode "unzip" qui contient le code suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    190        // Open zip file
    191        File _file = new File(zipFile);
    192        System.out.println("_file : " + _file);
    193        ZipFile _zipFile = new ZipFile(_file);
    194        System.out.println("_zipFile : " + _zipFile);
    195        this.set_zipFile(_zipFile);
    quand je l'exécute dans Netbeans j'obtiens les traces suivantes :
    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
     
    compile:
    run:
    _file : /home/stc/TesteurDyn/RapportZIP/RIOM-TESTDYN001_20091130_48Fail.zip
    java.util.zip.ZipException: error in opening zip file
            at java.util.zip.ZipFile.open(Native Method)
            at java.util.zip.ZipFile.<init>(ZipFile.java:114)
            at java.util.zip.ZipFile.<init>(ZipFile.java:131)
            at importDynTesteurData.Rapport.unzip(Rapport.java:193)
            at importDynTesteurData.ImportDynTesteurData.importRapport(ImportDynTesteurData.java:25)
            at importDynTesteurData.ImportDynTesteurData.main(ImportDynTesteurData.java:100)
    java.util.zip.ZipException
            at importDynTesteurData.ImportDynTesteurData.importRapport(ImportDynTesteurData.java:31)
            at importDynTesteurData.ImportDynTesteurData.main(ImportDynTesteurData.java:100)
    BUILD SUCCESSFUL (total time: 0 seconds)
    Infos complèmentaires :
    - Le zip se nomme "RIOM-TESTDYN001_20091130_48Fail.zip".
    - Le zip se trouve bien dans le répertoire "/home/stc/TesteurDyn/RapportZIP/"
    - Le zip est parfaitement lisible avec le gestionnaire d'archive "File roller" sous linux.
    - Si je dézippe et rezippe le fichier sous un autre nom le problème persiste.


    Quelqu'un aurait-il une piste car je ne vois pas se que ce fichier a de particulier et le pourquoi de cette erreur.

  2. #2
    Membre Expert Avatar de Uther
    Homme Profil pro
    Tourneur Fraiseur
    Inscrit en
    Avril 2002
    Messages
    4 680
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Tourneur Fraiseur

    Informations forums :
    Inscription : Avril 2002
    Messages : 4 680
    Par défaut
    Visiblement, il a du mal à lire le fichier. Est ce que _file.exists() retourne bien "true"?

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut
    Citation Envoyé par Uther Voir le message
    Visiblement, il a du mal à lire le fichier. Est ce que _file.exists() retourne bien "true"?
    j'ai ajouté le test, résultat : _file.exists() retourne true.

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut
    Citation Envoyé par Uther Voir le message
    Visiblement, il a du mal à lire le fichier. Est ce que _file.exists() retourne bien "true"?
    Le problème vient en effet de la lecture du zip.
    Le zip que j'exploite contient plusieurs fichiers et or moi je ne récupère les infos que dans un seul. J'ai viré tous les fichiers qui ne me sont pas utile du zip est le programme fonctionne correctement.

    Mais j'aimerais comprendre ce qui peut perturbé l'ouverture du zip car la solution de virer les fichiers inutiles ne me satisfait pas.

    Bon wk

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut
    j'ai "résolu" le problème en décompressant le zip et en le recréant avec le même nom (ceci étant une contrainte du programme).

    Je ne m'explique pas le fait que des logiciels tels que Winzip, 7zip ou autres lisent et manipulent parfaitement le zip et que les méthodes de la librairie java.util.zip aient des problème.

    Bref, le problème n'est pas vraiment résolu mais facilement contournable.

  6. #6
    Membre Expert
    Profil pro
    Inscrit en
    Août 2006
    Messages
    3 274
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 3 274
    Par défaut
    As-tu des noms de fichiers avec accent dans ton zip ?
    Si c'est le cas, ça pose problème.

  7. #7
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    les méthodes de la librairies zip sont destinés principalement à kla manipulation des jar. La pluspart des logiciels style winzip gèrent des extensions par rapport au format zip de base qui est déjà bien vieux. Visiblement l'api java ne supporte pas une des extensions créées par ton programme de compression. Le mieux serait d'utiliser un api zip plus avancée, comme par exemple commons compress

  8. #8
    Membre éclairé
    Profil pro
    Inscrit en
    Décembre 2009
    Messages
    96
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2009
    Messages : 96
    Par défaut
    Citation Envoyé par fr1man Voir le message
    As-tu des noms de fichiers avec accent dans ton zip ?
    Si c'est le cas, ça pose problème.
    Non, le zip ne contient aucun fichier accentué.

    Citation Envoyé par tchize_ Voir le message
    les méthodes de la librairies zip sont destinés principalement à kla manipulation des jar. La pluspart des logiciels style winzip gèrent des extensions par rapport au format zip de base qui est déjà bien vieux. Visiblement l'api java ne supporte pas une des extensions créées par ton programme de compression. Le mieux serait d'utiliser un api zip plus avancée, comme par exemple commons compress
    Bonne idée d'aller voir du côté d'une API plus avancée. Je n'aurais pas le temps immédiatement mais j'espère bien pouvoir essayer cette solution.

    Savez-vous si l'api standard doit évoluer afin de mieux gérer les autres formats que le jar ? Où puis-je trouver ce style d'infos ?

  9. #9
    Expert éminent
    Avatar de tchize_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2007
    Messages
    25 482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Belgique

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 482
    Par défaut
    Citation Envoyé par stephane.combes Voir le message
    Savez-vous si l'api standard doit évoluer afin de mieux gérer les autres formats que le jar ? Où puis-je trouver ce style d'infos ?
    Je pense pas que rien de tout ca ne sois prévu pour java 7. Il ne faut pas perdre de vue que la pluspart de ces extensions sont "propriétaires" Et je ne pense pas que sun y voie une nécessité, puisque ce sont les outils de sun qui créent et lisent les jars

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. java.util.zip.ZipException: invalid entry size
    Par ashraf3077 dans le forum Développement Web en Java
    Réponses: 1
    Dernier message: 12/07/2011, 09h52
  2. ZipException : error in opening zip file
    Par pippou dans le forum Collection et Stream
    Réponses: 4
    Dernier message: 20/06/2007, 21h32
  3. problème avec java.util.zip.Inflater
    Par felix79 dans le forum Collection et Stream
    Réponses: 1
    Dernier message: 11/06/2007, 15h02
  4. Importer java.utils.zip ?
    Par Chii-san dans le forum Java ME
    Réponses: 3
    Dernier message: 15/03/2007, 15h01
  5. [C#] #ziplib ou J# (java.util.zip) pour ZIPper?
    Par SErhio dans le forum Windows Forms
    Réponses: 10
    Dernier message: 11/02/2005, 15h46

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