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

NetBeans Java Discussion :

[Visual Web] parcourir une arborescence ne marche pas toujours sur Unix


Sujet :

NetBeans Java

  1. #1
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut parcourir une arborescence ne marche pas toujours sur Unix
    Salut
    Ce code fonctionne très bien sur windows, mais pas sur Unix.
    Sur unix je l'ai tester plusieurs fois, et des fois il marche, et des fois il ne marche pas. il ne trouve pas le fichier chercher, alors que ce fichier existe bel et bien dans l'arborescence.

    Je ne sais pas si c'est une question de variable locale/globale ou une question de sortie de boucle.
    Est-ce que quelqu'un peut m'aider ?
    Je développe en java avec netbeans + VWP

    Merci.

    Voici le code du bouton

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    String fichier = "nothing"; 
        public String button1_action() {
           String valeur_retour = "";
           File C = new File("//usr//rep1//");
           String fichier_chercher = "toto.txt"; 
           fichier = listeRepertoire(C, fichier_chercher);
           return null;
        }

    et voici la méthode que j'utilise sur unix.

    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
     
    private String listeRepertoire(File repertoire, String fichier_chercher) {
     
                if (repertoire.isDirectory()) {
       File[] list = repertoire.listFiles();
       for (int i = 0; i < list.length; i++) {
        // Appel récursif sur les sous-répertoires
        File file = list[i];
        if (file.isDirectory()) {
         listeRepertoire(file, fichier_chercher);
        } else {
         if (fichier_chercher.equals(file.getName())) {
           textField2.setValue("fichier trouvé (file.getAbsolutePath)" + file.getAbsolutePath());
         fichier = file.getAbsolutePath();
          }
     
        }
       }
      }
                    return(fichier);
     }
    Le propriétaire de l'original de ce code l'avait mentionné ici
    http://java.developpez.com/faq/java/...scence_fichier

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Mai 2003
    Messages
    3 240
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 3 240
    Points : 11 101
    Points
    11 101
    Par défaut
    Tu peux poster un exemple de l'arborescence que tu as sur Unix ?

    Attention que Unix est sensible à la casse et pas windows.

    Aussi, pourquoi tu écris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File C = new File("//usr//rep1//");
    ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File C = new File("/usr/rep1.");
    devrait suffire

    Il faut doubler les \ sous Java, car c'est un caractère d'échappement.
    Mais pas les /.

    Tu peux également utiliser le débogueur pour avancer pas à pas dans ton programme et voir exactement où il passe dans ton code lorsqu'il parcourt l'arborescence de ton répertoire.

    Vincent
    Vincent Brabant

    Ne pas me contacter par MP ni par mail pour des questions techniques. Ma liste d'amis restera vide.

    Cours et tutoriels pour apprendre Java , FAQ Java, et Forum Java

  3. #3
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par vbrabant
    Tu peux poster un exemple de l'arborescence que tu as sur Unix ?
    Comment je vais faire pour afficher sur l'écran le détail de chaque répertoire et les fichiers qu'il contient ? y a t-il un paramétre à rajouter à la commande ls pour qu'elle affiche aussi le contenu de chaque répertoire.

    Citation Envoyé par vbrabant
    Aussi, pourquoi tu écris ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File C = new File("//usr//rep1//");
    ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File C = new File("/usr/rep1.");
    devrait suffire
    Ok c'est fait. mais lorsque j'ai fait la trace de mon chemin, la valeur imprimée contient des \ au lieu de /
    moi j'ai mis dans ma variable le chemin suivant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    File chemin = new File("/usr/rep1");
    et lorsque j'affiche cette variable pour confirmer si sa valeur a restée intact, il l'affiche comme ça
    alors je ne comprends pas pourquoi il les inverse.
    Faut-il déclarer la variable chemin comme un type File ?

    Citation Envoyé par vbrabant
    Tu peux également utiliser le débogueur pour avancer pas à pas dans ton programme et voir exactement où il passe dans ton code lorsqu'il parcourt l'arborescence de ton répertoire.
    Vincent
    Oui j'aimerais bien ça, mais je t'explique :

    Je développe mon application sur mon PC avec Netbeans+vwp+tomcat qui se trouve sur mon PC sous windows.

    Mais pour le déployement, j'ai accès au manager du serveur web tomcat qui celui là se trouve sur une autre machine unix accessible via http://XXXX:5487/manager

    à partir de mon écran, je peux déployer l'application sur le serveur unix, mais je ne sais pas comment aller déboguer.

    Sais tu comment je dois faire dans mon cas ?

    Merci.

  4. #4
    Débutant
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    496
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Septembre 2006
    Messages : 496
    Points : 149
    Points
    149
    Par défaut
    Maintenant la situation s'est empirée.

    le même programme marche bien dans une arborescence Windows, et donne une erreur dans une arborescence unix. Pourtant java est sensé être portable facilement.

    voici l'erreur sur un serveur web tomcat sous unix.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    HTTP Status 500 - 
     
    type Status report
    message 
    description The server encountered an internal error () that prevented it from fulfilling this request.
    Apache Tomcat/5.5.17
    voici le changement que je fais pour aller de windows à Unix


    Lorsque je veux faire la recherche sur windows (lui marche bien)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     public  String fichier = ""; 
     public File chemin = new File("C://temp//");
     public String fichier_chercher = "toto.doc"; 
     
     public String button_1_action() throws IOException {
      -----------------
    -----------------
    }
    Lorsque je veux faire la recherche sur Unix (lui donne une erreur)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    public  String fichier = ""; 
    public File C = new File("/usr/rep1/");
    public String fichier_chercher = "titi.txt"; 
    public String button_1_action() throws IOException {
     
      -----------------
    -----------------
    }
    Dans le corps de la fonction qui fait la recherche, je ne fais aucun changement.

Discussions similaires

  1. Parcourir une arborescence puis traitement sur fichier
    Par linuxdeb dans le forum Shell et commandes GNU
    Réponses: 20
    Dernier message: 13/12/2013, 16h02
  2. Réponses: 5
    Dernier message: 14/05/2013, 15h13
  3. Update sur une table ne marche pas
    Par haskouse dans le forum Développement de jobs
    Réponses: 6
    Dernier message: 30/07/2010, 10h59
  4. Réponses: 1
    Dernier message: 08/11/2006, 17h23
  5. [VB6] parcourir une arborescence de repertoire
    Par pecheur dans le forum VB 6 et antérieur
    Réponses: 8
    Dernier message: 30/04/2003, 17h33

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