Montag, 19. Juli 2010

Alle Dateien / Ordner in Ordner auflisten

Zum Ausgeben aller Dateien oder Ordner in einem bestimmten Ordner wird in C# die Klasse System.IO.DirectoryInfo benötigt.
Diese wird mit dem gewünschten Ordner initialisiert und bietet dann zum Ausgeben des Ordnerinhalts 2 Funktionen: GetFiles() und GetDirectories(). Erstere liefert ein Array von System.IO.FileInfo Objekten zurück, welche alle im Ordner vorhandenen Dateien repräsentieren. Zweitere liefert ein Array vom Typ System.IO.DirectoryInfo zurück, in dem alle Unterordner des gewählten Ordners gespeichert sind.
Folgendes Beispielkonsolenprogramm gibt auf der Konsole alle Dateien und Ordner im Order "C:\Testordner" aus:

            System.IO.DirectoryInfo ParentDirectory = new System.IO.DirectoryInfo("C:\\Testordner");

            foreach (System.IO.FileInfo f in ParentDirectory.GetFiles())
            {
                Console.WriteLine("Datei: " + f.Name);
            }

            foreach (System.IO.DirectoryInfo d in ParentDirectory.GetDirectories())
            {
                Console.WriteLine("Ordner: " + d.Name);
            }

Auf Udo's Blog gibt es außerdem eine kleine Erweitung, um rekursiv auch Dateien aus Unterordnern aufzulisten.

Kommentare:

  1. Cool genau diesen ansatz habe ich gesucht und gebraucht :)

    AntwortenLöschen
  2. Cool. Gut zu wissen. Danke.

    AntwortenLöschen
  3. öh mal ne frage bei mir kommt immer "6 C:\Programme\Dev-Cpp\projekt\test\main.c `System' undeclared (first use in this function) "
    was genau soll das heißen was fehlt mir? bitte nicht denken man ist der blöd ich mach das noch nicht lange mit c daher bitte um verständnis achso noch was es spelt sich alles in der MSDOSconsole ab. nur fals das wichtig ist.

    AntwortenLöschen
  4. So wie ich das sehe programmeirst du in C, das beispiel hier an dieser stelle ist aber C# :)

    AntwortenLöschen
  5. Perfekt, genau so einen Ansatz habe ich benötigt.
    Vielen lieben Dank!

    AntwortenLöschen
  6. Antworten
    1. Danke hat geholfen!

      Löschen
    2. Die Antwort ist sehr kreativ und hilfreich!

      Löschen
    3. Hilfreich wie immer

      Löschen
  7. Danke! Habe überall nach genau das hier gesucht!

    AntwortenLöschen