Partage
  • Partager sur Facebook
  • Partager sur Twitter

[C#] Compter nombre fichier dans un dossier

Sujet résolu
    27 juin 2012 à 14:56:29

    Bonjour, j'aimerais savoir comment faire pour connaitre le nombre de fichier contenu dans un dossier (retourner dans un entier donc).

    La seul chose que j'ai trouvé sur le net c'est ça: http://msdn.microsoft.com/fr-fr/librar [...] v=vs.80).aspx Mais j'ai pas tout compris, d'autant que je n'ai pas cette référence.

    Et j'ai trouvé aussi ça:
    DirectoryInfo.GetFiles().Length
    

    Mais j'ai "Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.IO.DirectoryInfo.GetFiles()'

    Bref, y'aurait pas un moyen de savoir ?
    • Partager sur Facebook
    • Partager sur Twitter
    Anonyme
      27 juin 2012 à 15:06:14

      Bonjour,

      Tiens, ceci devrait t'aider:

      string path = "C:\Program Files\";
      
      int nbFichiers = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories).Length - 1; 
      // Renvoie le nombre de fichiers contenus dans le dossier ET les sous-dossiers
      
      int nbFichiersSD = Directory.GetFiles(path, "*.*", SearchOption.TopDirectory).Length - 1;   
      // Renvoie le nombre de fichiers contenus dans le dossier MAIS PAS dans les sous-dossiers
      
      int nbFichiersJPG = Directory.GetFiles(path, "*.jpg", SearchOption.AllDirectories).Length - 1; 
      // Renvoie le nombre de fichiers JPG contenus dans le dossier ET les sous-dossiers
      
      • Partager sur Facebook
      • Partager sur Twitter
      Anonyme
        27 juin 2012 à 15:10:58

        Ruby Elegance, il y a une erreur dans le troisième commentaire de ton exemple ^^

        Sinon, pour ce qui est de DirectoryInfo, il faut que tu instancies une DirectoryInfo avec le chemin puis utilise GetFiles comme indiqué.
        Mais si tu ne veux faire qu'une seule opération sur un répertoire, mieux vaut utiliser Directory.
        • Partager sur Facebook
        • Partager sur Twitter
        Anonyme
          27 juin 2012 à 15:13:13

          Citation : Aethec

          Ruby Elegance, il y a une erreur dans le troisième commentaire de ton exemple ^^

          Sinon, pour ce qui est de DirectoryInfo, il faut que tu instancies une DirectoryInfo avec le chemin puis utilise GetFiles comme indiqué.
          Mais si tu ne veux faire qu'une seule opération sur un répertoire, mieux vaut utiliser Directory.



          Y'en avait 2 en fait :( J'avais mis la mauvaise extension, et j'avais oublié de retirer 1 au résutat de l'opération. Merci de la remarque ^^
          • Partager sur Facebook
          • Partager sur Twitter
            27 juin 2012 à 15:14:54

            J'ai vu l'erreur aussi entre le xml et les jpeg et le -1 à la fin :-°

            Sinon, pour l'utilisation de Directory qui me semble en effet plus simple.
            Si je veux mettre en chemin le dossier courant, je mets quoi ?
            int nbrFichier = Directory.GetFiles("").Length;
            
            • Partager sur Facebook
            • Partager sur Twitter
            Anonyme
              27 juin 2012 à 15:16:05

              Soit . soit ./

              C'est équivalent (dans les doubles quotes, bien entendu).
              • Partager sur Facebook
              • Partager sur Twitter
                27 juin 2012 à 15:17:54

                Citation : Ruby Elegance


                Y'en avait 2 en fait :( J'avais mis la mauvaise extension, et j'avais oublié de retirer 1 au résutat de l'opération. Merci de la remarque ^^


                D'ailleurs, pourquoi retire tu 1 à la fin de la taille ?

                Et merci pour la réponse pour le dossier courant ;)
                • Partager sur Facebook
                • Partager sur Twitter
                Anonyme
                  27 juin 2012 à 15:25:48

                  C'est peut être une erreur, de mémoire il faut retirer 1, mais c'est pas vraiment sûr... Essaye par toi même :)
                  • Partager sur Facebook
                  • Partager sur Twitter
                  Anonyme
                    27 juin 2012 à 15:37:20

                    Utilise Directory.GetCurrentDirectory() pour obtenir le dossier de travail et Path.GetDirectoryName( Assembly.GetExecutingAssembly().Location ) pour obtenir le dossier dans lequel l'exécutable de ton appli est situé.

                    Si ton application est appelée en ouvrant un fichier, par exemple, le dossier de travail sera différent du dossier de l'appli.
                    • Partager sur Facebook
                    • Partager sur Twitter
                      27 juin 2012 à 15:41:15

                      Je vais me débrouiller avec tout ça. Merci à tous ^^
                      • Partager sur Facebook
                      • Partager sur Twitter
                        6 juin 2019 à 12:04:04

                        int nbFichiersSD = Directory.GetFiles(path, "*.*", SearchOption.TopDirectory).Length - 1;  

                        N'est plus approprié, il faut maintenant utiliser

                        int nbFichiersSD = Directory.GetFiles(path, "*.*", SearchOption.TopDirectoryOnly).Length - 1;

                        -
                        Edité par Matthieu NOEL 6 juin 2019 à 13:39:36

                        • Partager sur Facebook
                        • Partager sur Twitter

                        [C#] Compter nombre fichier dans un dossier

                        × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                        × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
                        • Editeur
                        • Markdown