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

C# Discussion :

Lister l'arborescence d'un répertoire


Sujet :

C#

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut Lister l'arborescence d'un répertoire
    Since some hours, i am unable to find a way to get all the files, directories and sub directories from a specified path using C#.
    Bonjour, depuis quelques heures j'essaye de trouver comment obtenir la liste des répertoires et sous-répertoires et fichiers d'un répertoire choisi.

    j'ai qqch comme ça:

    1- home
    1.1- dir1
    1.2- dir2
    1.2.1- file
    1.3- file
    ...

    J'arrive à obtenir la liste des fichiers d'un côté et celle des répertoires de l'autre, mais je n'arrive pas à mixer les deux.

    Ce que je souhaite:

    analyser le répertoire choisi
    regarder à l'intérieur pour le premier élément par ordre alphabétique.
    ajouter le nom de ce fichier à un xm pour créer la structure (noeu / élément)

    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
    foreach (var dir in Directory.EnumerateDirectories(pathToParse))
    {
       Console.WriteLine(dir);
       try
       {
          foreach (var item in listFiles)
          {
              Console.WriteLine(item);
          }
       }
       catch (Exception exception)
       {
          Console.WriteLine("Erreur: {0}", exception.ToString());
       }
       finally { }
    }
    par défaut j'obtiens ça:

    C:\Tests\intranet RH\1- Accueil\1.3- test.html
    C:\Tests\intranet RH\1- Accueil\1.1- Sage\1.1.1- test.html
    C:\Tests\intranet RH\1- Accueil\1.1- Sage\1.1.2- test2.html
    C:\Tests\intranet RH\1- Accueil\1.1- Sage\1.1.3- test3.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.1- sous menu 1\1.2.1.1- testsub.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.1- sous menu 1\1.2.1.2- testsub2.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.2- sous menu 2\1.2.1.1- test.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.2- sous menu 2\1.2.1.2- test.html

    alors que je voudrais obtenir ça:

    C:\Tests\intranet RH\1- Accueil\1.1- Sage\
    C:\Tests\intranet RH\1- Accueil\1.1- Sage\1.1.1- test.html
    C:\Tests\intranet RH\1- Accueil\1.1- Sage\1.1.2- test2.html
    C:\Tests\intranet RH\1- Accueil\1.1- Sage\1.1.3- test3.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.1- sous menu 1\
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.1- sous menu 1\1.2.1.1- testsub.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.1- sous menu 1\1.2.1.2- testsub2.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.2- sous menu 2\
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.2- sous menu 2\1.2.1.1- test.html
    C:\Tests\intranet RH\1- Accueil\1.2- Mentions\1.2.2- sous menu 2\1.2.1.2- test.html
    C:\Tests\intranet RH\1- Accueil\1.3- test.html

    en fait exactement ce que je vois dans mon explorateur quand je tri par nom.

    pouvez-vous m'aider ?

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Points : 10
    Points
    10
    Par défaut J'ai réussi
    voici le code pour ceux que ça peut aider:

    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
    public void createTree(String pathToParse)
            {
                foreach (var dir in Directory.EnumerateDirectories(pathToParse))
                {
                    Console.WriteLine(dir);
     
                    try
                    {
                        createTree(dir);
     
                        foreach (var file in Directory.GetFiles(dir, "*"))
                        {
                            Console.WriteLine(file);
                        }
     
                    }
     
                    catch (Exception exception)
                    {
                        Console.WriteLine("Erreur: {0}", exception.ToString());
                    }
                    finally { }
                }
     
            }

  3. #3
    Membre régulier
    Homme Profil pro
    Architecte technique
    Inscrit en
    Avril 2003
    Messages
    79
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte technique

    Informations forums :
    Inscription : Avril 2003
    Messages : 79
    Points : 107
    Points
    107
    Par défaut
    Salut Polyvan,

    Sauf erreur de ma part, il me semble que ta solution comporte un petit problème : Tu n'affiches pas les fichiers de ton répertoire racine

    Cordialement,

  4. #4
    Membre émérite
    Avatar de azstar
    Homme Profil pro
    Architecte Technique BizTalk/.NET
    Inscrit en
    Juillet 2008
    Messages
    1 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Architecte Technique BizTalk/.NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 198
    Points : 2 424
    Points
    2 424
    Par défaut
    Citation Envoyé par euyeusu Voir le message
    Salut Polyvan,

    Sauf erreur de ma part, il me semble que ta solution comporte un petit problème : Tu n'affiches pas les fichiers de ton répertoire racine

    Cordialement,
    yes, je pense que tu as raison ; ce que je propose c'est de faire dans code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
     
    void CreateFilesTreeForDic(string dir)
    {
     
     foreach (var file in Directory.GetFiles(dir, "*"))
                        {
                            Console.WriteLine(file);
                        }
    }
    une nouvelle fonction pour afficher les fichiers d'un répertoire

Discussions similaires

  1. [C++/Unix] Lister les fichiers d'un répertoire
    Par bouazza92 dans le forum Linux
    Réponses: 5
    Dernier message: 10/12/2013, 22h07
  2. [Graphics View] Navigation dans l'arborescence d'un répertoire et en lister le contenu
    Par younesken dans le forum Débuter
    Réponses: 2
    Dernier message: 15/10/2013, 11h46
  3. Lister le contenu d'un répertoire
    Par rob_57 dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 09/10/2005, 19h16
  4. Lister le contenu d'un répertoire distant
    Par dody dans le forum Langage
    Réponses: 3
    Dernier message: 06/10/2005, 17h23
  5. [CF][PPC/C#] Comment lister les fichiers d'un répertoire ?
    Par dady dans le forum Windows Mobile
    Réponses: 18
    Dernier message: 20/05/2005, 14h35

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