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 :

Liste de fichiers dans un dossier [Débutant]


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut Liste de fichiers dans un dossier
    Bonjour à tous,

    J'aimerais avoir une liste de tous les fichiers disponibles dans un (ou plusieurs) dossiers (pour le moment pas de sous-dossier).

    En me rapprochant de la documentation officielle, j'ai pu trouver Directory.EnumerateFiles qui fonctionne et me donne bien le contenu désiré.

    Juste une petite remarque, l'ordre d'affichage de cette liste (pour le moment dans une console, j'en suis qu'au début et pour le moment je ne fais que des tests) et différente de celle que j'ai avec un explorateur de fichier. J'ai bien sûr changer l'ordre, rien y fait. Est-ce parce que les fichiers sont référencé d'une autre manière dans le système de fichier ?

    Mon problème est que j'ai ceci comme résultat :
    directory/fileName

    Or, je n'aimerais que le nom du fichier, sans avoir le nom complet. Je ne trouve rien à ce sujet dans la documentation.

    Faut-il faire un traitement supplémentaire ?

    Merci pour votre aide.

  2. #2
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    et ?

    ou encore bien mieux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    System.IO.DirectoryInfo monRep = new System.IO.DirectoryInfo(@"c:\monRepertoire");
    FileInfo[] mesFichiers = monRep.GetFiles()
    Chaque FileInfo te permettra de récupérer des infos sur les fichiers

    ya ca aussi pour récupérer le nom du fichier depuis le chemin :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    System.IO.Path.GetFileName(cheminFichier);
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  3. #3
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Et un peu de Linq pour le plaisir des yeux

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Directory.GetFiles(myDirectory)
                .Select(file => Path.GetFileName(file)
                .OrderBy(file => Path.GetExtension(file)); // Tri par extension
    //          .OrderBy(file => Path.GetCreationTime(file)); // Tri par date de création
    Tu peux trier par ce que tu veux pour émuler le tri de l'explorateur. Par contre, je crois pas qu'il soit possible de récupérer le tri de l'utilisateur dans le dossier en question. En tout cas, je ne sais pas le faire
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  4. #4
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut
    @ Themacleod1980 :

    Merci pour ta réponse mais j'ai essayé GetFiles et à moins qu'on ne parle pas du même, j'avais le même résultat (d'ailleurs je vois sur la doc qu'il est bien spécifier que cela retourne à la fois le chemin et le nom du fichier).

    Concernant le DirectoryInfo, effectivement je n'avais pas creusé. Par contre, tu passes par un tableau. Dans l'absolu, cela me convient mais dans la doc ils expliquent que les énumérations sont plus rapide, notamment dans le cas où les fichiers seront nombreux. Dans mon cas, plus de 5000. La question est à combien on commence à dire que cela fait beaucoup ?

    Dernier point, ton GetFileName n'est-il pas pour récupérer le nom du fichier uniquement dans le cas où tu connais son nom ? (dans mon cas, je cherche justement à les obtenirs).

    Voilà, si tu pouvais me répondre à ces points, ça serais super (ou quelqu'un d'autre ?).


    @ MaximePalmisano : Merci mais je commence avec C#, donc linq je ne connais pas, même si j'ai déjà croisé ce nom dans mes livres ou la doc
    Je met de côté pour la suite quand je me lancerais vraiment dans ce programme.

    Par contre je ne cherche pas à trier, bien que j'ai cherché à le faire sur une énumération et je n'ai pas réussi pour le moment. En fait, le résultat est correctement trié, c'est à dire par ordre alphabétique. Super ! Mais c'est dans mon navigateur de fichier que les fichiers ne le sont pas correctement
    J'ai pas compris pourquoi pour le moment.

  5. #5
    Membre éprouvé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2011
    Messages
    487
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine et Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2011
    Messages : 487
    Points : 945
    Points
    945
    Par défaut
    Je pense que tu confonds quelques trucs.

    Une énumération : http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx
    Un énumérable est un objet que l'on peut enumérer (cad sur lequel on peut itérer).

    Sachant qu'un énumérable est un objet implémentant IEnumerable, un tableau est donc bien un énumerable. (Cf. http://msdn.microsoft.com/fr-fr/libr...v=vs.100).aspx )

    Et puis pour 5k éléments, t'es plutôt tranquille, c'est pas énorme
    Mon blog sur les technos .NET et Agile -> http://blog.developpez.com/maximepalmisano/

  6. #6
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    Si, le GetFileName est la Méthode que tu recherches (je pense)
    sinon, explore le NameSpace "System.IO.Path", la plupart des Méthodes sont TRES pratiques

    EDIT :
    Je pense que ta doc parlait surtout des tableaux du genre "ArrayList" ou "List<>" qui sont des classes assez évoluées. Un simple tableau "monType[]" est très rapide.
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  7. #7
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut
    @ MaximePalmisano : Merci, je me suis effectivement un peu embrouillé

    Bon merci à vous en tout cas, j'ai se que je voulais, me manque une chose dans un nouveau post

  8. #8
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Décembre 2005
    Messages
    482
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Décembre 2005
    Messages : 482
    Points : 625
    Points
    625
    Par défaut
    un ptit clique sur "resolu" alors ?
    "Essayer est le premier pas vers l'Echec !" (Homer Simpson)

  9. #9
    Membre du Club
    Inscrit en
    Février 2008
    Messages
    190
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 190
    Points : 53
    Points
    53
    Par défaut
    Ah oui, merci.

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

Discussions similaires

  1. [AC-2010] Listing de Fichier dans sous Dossier (Problem de Loop)
    Par FewRa dans le forum VBA Access
    Réponses: 2
    Dernier message: 11/08/2014, 11h02
  2. [XL-2007] Rafraichissement Listbox avec liste de fichiers dans un dossier
    Par XceSs dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 11/11/2013, 15h19
  3. Réponses: 12
    Dernier message: 11/05/2012, 11h17
  4. liste de fichier dans un dossier
    Par matt16matt dans le forum Langage
    Réponses: 6
    Dernier message: 21/05/2008, 12h36
  5. Réponses: 3
    Dernier message: 15/05/2007, 10h05

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