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]

VB.NET 2017/2015/2013 Einführung

Das Seminar befähigt Sie zur eigenständigen Entwicklung von anwenderorientierten Programmen in VB.NET, worin auch der Einsatz von Datenbanken enthalten ist.

C# 2017/2015/2013 Aufbau

In dieser Schulung lernen Sie fortgeschrittene Techniken im Bereich .Net C#. Dabei stehen neben den eigentlichen Techniken auch architektonische Aspekte im Mittelpunkt.

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!