Feedback

C# - Alle Dateien eines Ordners auflisten

Veröffentlicht von am 9/7/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.
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 11/5/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 9/24/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!