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 :

parcourir un dossier et trouver les noms de fichier


Sujet :

Entrée/Sortie Java

  1. #1
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut parcourir un dossier et trouver les noms de fichier
    bonjour,
    j'ai un dossier qui contient beaucoup de fichiers xml.
    ce que je voudrais faire c'est de créer une fonction qui va créer un fichier xml qui contient les noms de tous ces fichiers dans ce dossier. et les mettre dans des noeuds xml d'un seul fichier.
    sous la forme suivante par exemple:
    <fichier1>cours android</fichier1>
    <fichier2>cours java</fichier2>
    Merci

  2. #2
    Membre habitué Avatar de snay13
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 166
    Points
    166
    Par défaut
    Pour le stockage dans un fichier xml tu peux utliser JDOM

    Pour récupérer les noms de fichiers, tu réalise une boucle sur ton dossier du genre

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    File repertoire = new File("chemin_du_dossier"); 
    File []listeFilePath = repertoire.listFiles();
    for (i = 0, num = 0; i < listeFilePath.length ; i++)
    {
    ...
    }
    et dans cette boucle, tu envoie vers une méthode statique qui sauvegarde dans ton fichier xml en incrémentant à chaque fois de 1

  3. #3
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Pour la construction du fichier XML, autant faire simple et écrire tout "à la main" via un BufferedOutputStream par exemple.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  4. #4
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    il souligne en rouge
    for ( i = 0, num = 0; i < listeFilePath.length ; i++)
    pourquoi?

    et il sont enregistrer dans quel variable les noms?
    quand j'écris dans le xml, comment je récupère les noms des fichiers
    je fait listeFilePath.toString(i) ?

  5. #5
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Citation Envoyé par julie_lab Voir le message
    il souligne en rouge
    for ( i = 0, num = 0; i < listeFilePath.length ; i++)
    pourquoi?
    Sans le code autour et/ou le message d'erreur, impossible de t'aider.

    et il sont enregistrer dans quel variable les noms?
    De quoi parles-tu ?

    quand j'écris dans le xml, comment je récupère les noms des fichiers
    je fait listeFilePath.toString(i) ?
    Si tu es débutant en Java, je te conseille de fouiller dans les FAQ et tutoriels pour apprendre les bases.
    Si tu veux qu'on t'aide, aide nous ! Donne tout ton code, et pas que des lignes prises au hasard !
    Si le code est trop volumineux, donne le code minimum compilable reproduisant les points ou tu bloques.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  6. #6
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    l'erreur: illegal start of type

    l'autre question:
    les noms des fichiers du répertoire seront enregistrer dans quel variable?
    pour que par la suite j'utilise cette variable pour écrire ces noms dans le fichier XML.

    en plus ,apparement il n'y pas de length dans listeFilePath

    listeFilePath.length

    merci

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    merci de faire ce qu'on te demande, c'est à dire poster le code que tu utilise et pas jsute quelques lignes.

  8. #8
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    j'ai rien ajouté,
    c'est exactement le code que vous m'avez donner.

  9. #9
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    Cette discussion tourne en rond. On veut bien faire des efforts, mais tu dois aussi en faire de ton côté.
    Donne le code complet que tu as écrit, sans réfléchir ni tenter de savoir pourquoi on en a besoin
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    tu dois au minimum
    -> avoir du code autour
    -> Avoir remplacé le ...

    Donc donne nous le code complet pour la troisième fois

  11. #11
    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
    Jvoudrais pas dire les gens, mais le code, c'est pas julie_lab qui l'a posté, c'est snay13. La demoiselle n'a pas de code, parce qu'elle vient ici justement pour nous demander comment faire.

    Pour lui répondre, "il souligne en rouge" parce que snay13 a oublié de déclarer la variable i. Je sais pas ce que c'est que ce num, j'en vois pas l'intérêt.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    for ( int i = 0; i < listeFilePath.length ; i++)
    Moi, je suggère de faire plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    for (File file : repertoire.listFiles()) {
      // Traiter fichier
    }

    les noms des fichiers du répertoire seront enregistrer dans quel variable?
    Avec le code de snay13, dans le tableau listeFilePath, qui contient des File, dont on peut obtenir le nom avec getName() et le chemin complet avec getPath(). Le mieux est de t'intéresser aux objets qu'on te montre, voir ce que ton logiciel de programmation te propose d'en faire, s'intéresser à sa JavaDoc : http://download.oracle.com/javase/6/...a/io/File.html

    Avec mon code, dans la variable file, de type File elle aussi.

    en plus ,apparement il n'y pas de length dans listeFilePath
    Seulement à travers tes yeux. listeFilePath étant un tableau, il a forcément un length, la question ne se pose pas.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java

  12. #12
    Membre habitué Avatar de snay13
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 166
    Points
    166
    Par défaut
    effectivement thelvin a raison pour la correction, j'ai oublié de le mettre int i = 0 et num est sans interet dans ce bout de code


  13. #13
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    Merci les gars, vraiment.
    bon
    j'ai opté pour la méthode sans la variable i
    mais il m'affiche une erreur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    File repertoire = new File("pathdossier");
     
    for (File file : repertoire.listFiles()) {
      // Traiter fichier
    }
    deja il m'indique que variable file n'est pas utilisé (not used)
    bon après, je sais pas comment accéder aux noms des fichiers, ils sont stocké ou exactement
    je doit écrire: String p= repertoire.getName();
    pour avoir le nom de chaque fichier?
    merci d'avance

  14. #14
    Membre habitué Avatar de snay13
    Homme Profil pro
    Inscrit en
    Juin 2009
    Messages
    236
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2009
    Messages : 236
    Points : 166
    Points
    166
    Par défaut
    Bon je reprends
    Si tu prends ce code il va t'écrire en mode console le nom de tes fichiers et dossiers present dans ton dossier

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    File repertoire = new File("c:\\dossier\\");
    for (File file : repertoire.listFiles())
    {
        System.out.println(file.getName());
    }
    Bien sur si tu es sous windows et un repertoire nommé "dossier" à la racine de ton disque dur c: sinon tu modifie

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

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

    Informations forums :
    Inscription : Avril 2007
    Messages : 25 481
    Points : 48 806
    Points
    48 806
    Par défaut
    un bon début, c'est de commencer par les cours de base de java avant de jouer avec les apis file, xml et autre, parce que, là, on est partit pourréaliser le code à ta place !

  16. #16
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    Bon , j'ai écris ce code et il m'affiche pas exactement ce que je veux
    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
     
    package test;
     
     
    import nux.xom.io.*;
    import nux.xom.xquery.*;
    import nux.xom.*;
    import nu.xom.*;
    import nu.xom.Document;
    import java.io.*;
    import java.util.*;
    //import org.jdom.*;
    //import org.jdom.output.*;
     
     
    public class TestApp {
     
     
     public TestApp() {
        }
     
        public static void main(String[] args) {
        try{
            File repertoire = new File("C:\\Users\\admin\\Documents\\test\\coll\\");
    //File listeFilePath = repertoire.listFiles();
        Document  doctot=new Builder().build(new File ("C:\\Users\\admin\\Documents\\test\\tot.xml"));
     
    for ( File file : repertoire.listFiles()) {
      // Traiter fichier
        String p= file.getName();
       Element racine = new Element(p);
       //System.out.println(p);
        doctot.fastInsertChild(racine, 0);
            }
        OutputStream out=new FileOutputStream ("C:\\Users\\admin\\Documents\\test\\tot.xml");
        Serializer ser=new Serializer(out);
        ser.write(doctot);
        out.close();
     
    }catch(Exception e){System.out.println(e.getMessage());}
     
                }
    }
    sachant que mon fichier xml contient initialement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <?xml version="1.0" encoding="UTF-8"?>
    <racine></racine>
    et après exécution du programme devient:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="UTF-8"?>
    <booksddd.xml/>
    <books2.xml/>
    <books.xml/>
    <racine>
    </racine>
    ce sont les 3 fichiers qui se trouve dans repertoire
    mais mon but est d'avoir la structure xml suivante:

    <?xml version="1.0" encoding="UTF-8"?>
    <racine>
    <fichier1>booksddd.xml</fichier1>
    <fichier2>books2.xml</fichier2>
    <fichier3>books.xml</fichier3>
    </racine>
    merci

  17. #17
    Modérateur
    Avatar de dinobogan
    Homme Profil pro
    ingénieur
    Inscrit en
    Juin 2007
    Messages
    4 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France

    Informations professionnelles :
    Activité : ingénieur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 4 073
    Points : 7 163
    Points
    7 163
    Par défaut
    T'as raison Tchize, on est parti pour écrire le code à sa place

    Un "Element" est un noeud dans ton fichier XML. Si tu lui donnes le nom d'un fichier, alors dans le fichier XML, tu as un noeud avec un nom tordu

    Pourquoi ne pas avoir suivi mon conseil en écrivant directement les chaines dans le fichier XML sans passer par une API ? Tu aurais moins de mal pour débuter.
    N'oubliez pas de consulter les FAQ Java et les cours et tutoriels Java
    Que la force de la puissance soit avec le courage de ta sagesse.

  18. #18
    Membre à l'essai
    Inscrit en
    Juillet 2010
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Juillet 2010
    Messages : 33
    Points : 15
    Points
    15
    Par défaut
    tout d'abord le code je l'ai écris moi meme.
    second chose: j'ai utiliser l'API car j'ai besoin de lire le contenu d'un répertoire
    pour avoir les fichiers et leurs noms.

Discussions similaires

  1. Réponses: 3
    Dernier message: 17/05/2012, 15h26
  2. Parcourir un dossier et récupérer le nom des fichiers
    Par wahab2052 dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 30/11/2010, 12h25
  3. Rechercher les nom de fichier dans un dossier
    Par Didibzh dans le forum Langage
    Réponses: 2
    Dernier message: 15/06/2007, 11h41
  4. Parcourir un dossier et afficher les sous-dossiers
    Par grenoult dans le forum VBA Access
    Réponses: 3
    Dernier message: 01/06/2007, 14h10
  5. Réponses: 2
    Dernier message: 06/12/2006, 11h50

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