Feedback

C# - Alle Dateien eines Ordners auflisten

Veröffentlicht von am 07.09.2007
(3 Bewertungen)
Diese Funktion sucht nach allen Dateien in einem Ordner und optional auch in Unterordnern. Man bekommt die Dateiliste als "List<string>" zurück.

Übernommen von Khartak und entsprechend angepasst.
GFU-Schulungen  [Anzeige]

ASP.NET 2.0 und 3.5

Dieser Kurs vermittelt Ihnen alle Erweiterungen von Microsoft ASP.NET 2.0. Zu diesen zählen u. a. Data Bindung, Master Pages, und Security.

XML und .NET Überblick

Um auf dem neuesten Wissensstand zu sein, sollten Sie unser aktuelles ASP .NET Komplett Seminar belegen.
Nach dem Seminar kennen Sie die wichtigsten Strömungen in der Software-Technologie

public class ListFiles
{
    /// <summary>
    /// Creates a list which contains all filenames in a specific folder
    /// </summary>
    /// <param name="Root">Folder which contains files to be listed</param>
    /// <param name="SubFolders">True for scanning subfolders</param>
    /// <returns></returns>
    public List<string> GetFileList(string Root, bool SubFolders)
    {
        List<string> FileArray = new List<string>();
        try {
            string[] Files = System.IO.Directory.GetFiles(Root);
            string[] Folders = System.IO.Directory.GetDirectories(Root);

            for (int i = 0; i < Files.Length; i++)
            {
                FileArray.Add(Files[i].ToString());
            }

            if (SubFolders == true) 
            {
                for (int i = 0; i < Folders.Length; i++) 
                {
                    FileArray.AddRange(GetFileList(Folders[i], SubFolders));
                }
            }
        }
        catch (Exception Ex) 
        {
            throw (Ex);
        }
        return FileArray;
    }
}
Abgelegt unter Datei, Liste, Ordner, Unterordner.

2 Kommentare zum Snippet

Rainer Hilmer schrieb am 05.11.2007:
Bezgl. Zeile 31: Was soll das denn? Erst wird mit try eine Exception abgefangen und dann im Catch-Block doch wieder geschmissen.
Günther Foidl schrieb am 24.09.2008:
FileArray.Add(Files[i].ToString());
Warum wird ein String mit ToString wieder in einen String gewandelt?

Außerdem liefert die Methode GetFiles in eine der Überladungen bereits alle Dateien inklusive der Unterverzeichnisse. Daher ist dieses Snippet unnötig.
 

Logge dich ein, um hier zu kommentieren!