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 :

java.util.zip : sous répertoire OK sous Windows mais pas sous MAC OS


Sujet :

Entrée/Sortie Java

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 212
    Points : 146
    Points
    146
    Par défaut java.util.zip : sous répertoire OK sous Windows mais pas sous MAC OS
    Bonjour,

    J'ai besoins de compresser un dossier complet, y compris les sous dossiers.

    Sous Windows pas de problème, j'ouvre le ZIP j'ai bien mes sous répertoires.

    Sous MAC OS j'ouvre le ZIP, je n'ai aucun dossier, je n'ai que des fichiers portant le nom des dossiers "courant\log\debug.log"

    J'ai essayé différent code, j'ai toujours le même résultat, voici le dernier :

    http://www.java2s.com/Code/Java/File...zipafolder.htm

    Avez vous une solution ?

    Merci

    EDIT : pour ouvrir entendez DECOMPRESSER

  2. #2
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    ... Et c'est pas toujours ce qui se passe, quand on ouvre un zip sous MacOS ? L'important c'est ce que ça donne au dézippage, non ?
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 212
    Points : 146
    Points
    146
    Par défaut
    Désolé, en fait quand je disais ouvrir c'est dézipper.

    Le problème est bien présent à la décompression.

    J'ai besoins de garder les sous dossiers, et que les fichiers gardent leur nom

    dossier : courant
    dossier : log
    fichier : debug.log

    là j'ai un fichier qui s'appelle : 'courant\log\debug.log'

  4. #4
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Salut,

    Quand j'utilise le menu "Ouvrir" en sélectionnant un zip dans le finder, le fichier est systématiquement dézippé, et j'obtiens bien une arborescence : si le fichier n'est pas dézippé, c'est qu'il y a à priori une application particulière qui a pris la main sur le menu et qui affiche à sa sauce le contenu du zip. L'important, en effet, c'est que le contenu dézippé soit conforme à ce qu'on attend.

    Il m'est arrivé d'avoir des problèmes pour dézipper par java, des zips créés en java, qui contenait des fichiers invisibles (commençant par un .), et d'autres problèmes avec des zip créés par des bibliothèques C++. En utilisant BZIP2, tout fonctionnait correctement.
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  5. #5
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par 6su7 Voir le message
    là j'ai un fichier qui s'appelle : 'courant/log/debug.log'
    Etrange que le nom du fichier puisse contenir des /

    Dans ton zip, quand tu le fabriques, tu ajoutes bien des entrées du type directory (Le nom du dossier terminée par / : dans ton cas, courant/log/) ?
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  6. #6
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 212
    Points : 146
    Points
    146
    Par défaut
    Merci de votre intérêt

    En fait il n'y a aucune application particulière, c'est celle du système que j'utilise pour décompresser et il ne crée aucune arborescence

    J'ai essayé sous 10.6 et 10.7

  7. #7
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 212
    Points : 146
    Points
    146
    Par défaut
    Encore une fois désolé, ce ne sont pas des / mais des \

    D'ailleur sur le site il s'agit de / que j'ai remplacé par File.seperator
    http://www.java2s.com/Code/Java/File...zipafolder.htm

    L’exécution et donc la construction du ZIP se fait sous windows.

  8. #8
    Modérateur
    Avatar de joel.drigo
    Homme Profil pro
    Ingénieur R&D - Développeur Java
    Inscrit en
    Septembre 2009
    Messages
    12 430
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D - Développeur Java
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2009
    Messages : 12 430
    Points : 29 131
    Points
    29 131
    Billets dans le blog
    2
    Par défaut
    Citation Envoyé par 6su7 Voir le message
    Encore une fois désolé, ce ne sont pas des / mais des \ .
    C'est pour ça alors. Et je comprend mieux qu'on puisse avoir des \ dans un nom de fichier sur mac osx.

    Un zip devant être portable sur plusieurs plateformes, on n'utilise pas de séparateurs dépendant de la plateforme. Utilises toujours / (Sur Windows remplaces les \ par / dans le nom de la zipentry).
    L'expression "ça marche pas" ne veut rien dire. Indiquez l'erreur, et/ou les comportements attendus et obtenus, et donnez un Exemple Complet Minimal qui permet de reproduire le problème.
    La plupart des réponses à vos questions sont déjà dans les FAQs ou les Tutoriels, ou peut-être dans une autre discussion : utilisez la recherche interne.
    Des questions sur Java : consultez le Forum Java. Des questions sur l'EDI Eclipse ou la plateforme Eclipse RCP : consultez le Forum Eclipse.
    Une question correctement posée et rédigée et vous aurez plus de chances de réponses adaptées et rapides.
    N'oubliez pas de mettre vos extraits de code entre balises CODE (Voir Mode d'emploi de l'éditeur de messages).
    Nouveau sur le forum ? Consultez Les Règles du Club.

  9. #9
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    J'ajoute qu'il est très rare que File.separator serve à quelque chose.
    Normalement les gens qui s'en servent feraient mieux de mettre / à la place, ça marchera pas moins bien et en général mieux. Il y a des cas où c'est pas vrai, mais tu les verras sûrement jamais. En tout cas, tant que tu as pas eu un problème avec le / rien ne justifie File.separator.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  10. #10
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 212
    Points : 146
    Points
    146
    Par défaut
    Effectivement c'était ça, il ne faut pas utiliser File.seperator

    En fait le File.seperator sert habituellement parce que je développe sous Mac et que le code est executé sous Windows ... oui cherchez l'erreur ....

    Là j'ai un BootCamp avec seven vu que je dois exécuter des DLL pour mes dev

    Merci

    Le code d'origine fonctionne parfaitement

  11. #11
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 212
    Points : 146
    Points
    146
    Par défaut
    Une petite modification qui permet de nommer le dossier une fois désarchivé :

    (toujours sur le même code ) http://www.java2s.com/Code/Java/File...zipafolder.htm

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
        addFolderToZip(null,"c:\\a", zip, "nomDossierArchive");
     
        private static void addFolderToZip(String path, String srcFolder, ZipOutputStream zip, String nomDossierArchive) throws Exception {
            File folder = new File(srcFolder);
            for (String fileName : folder.list()) {
                if (path == null) {
                    addFileToZip(nomDossierArchive, srcFolder + "/" + fileName, zip);
                } else {
                    addFileToZip(path + "/" + folder.getName(), srcFolder + "/" + fileName, zip);
                }
            }
        }

  12. #12
    Modérateur

    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    12 551
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 12 551
    Points : 21 607
    Points
    21 607
    Par défaut
    Citation Envoyé par 6su7 Voir le message
    En fait le File.seperator sert habituellement parce que je développe sous Mac et que le code est executé sous Windows ...
    Non non, il sert à rien dans ce cas-là. Mettre le / marchera parfaitement et même, parfois mieux que File.separator. Essaie.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  13. #13
    Membre habitué
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2005
    Messages : 212
    Points : 146
    Points
    146
    Par défaut
    Merci je vais essayer

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 15/10/2014, 15h27
  2. Compilation sous windows mais pas sous linux
    Par p1a2t3 dans le forum Débuter
    Réponses: 1
    Dernier message: 14/10/2014, 18h25
  3. [Prob] code qui fonctionne sous windows mais pas sous linux
    Par hannibal.76 dans le forum Multimédia
    Réponses: 3
    Dernier message: 07/02/2011, 17h46
  4. Axis fonctionne sous Windows mais pas sous Unix
    Par andlio dans le forum Services Web
    Réponses: 0
    Dernier message: 17/08/2010, 09h25
  5. Mon fichier gtkrc fonctionne sous windows mais pas sous Linux !
    Par Kicker dans le forum GTK+ avec C & C++
    Réponses: 2
    Dernier message: 24/04/2009, 12h54

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