Feedback

C# - Ordner und Dateien rekursiv durchlaufen

Veröffentlicht von am 06.07.2009
(2 Bewertungen)
using System.IO;
        public void dirSearch(string strDir)
        {
            try
            {
                foreach (string strDirectory in Directory.GetDirectories(strDir))
                {
                    foreach (string strFile in Directory.GetFiles(strDirectory))
                    {
			// mach etwas....
                    }

                    dirSearch(strDirectory);
                }
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message);
            }
        }
Abgelegt unter Ordner, Dateien, rekursiv, durchlaufen.

2 Kommentare zum Snippet

Martin Dauskardt schrieb am 10.01.2011:
Bei dieser Methode fehlen alle Dateien im ersten Ordner (strDir).
Damit auch die Dateien in der ersten Ebene gefunden werden, sollte
es eher so aussehen:

public void dirSearch(string strDir)
{
try
{
foreach (string strFile in Directory.GetFiles(strDir))
{
//mach was..
}

foreach (string strDirectory in Directory.GetDirectories(strDir))
{
dirSearch(strDirectory);
}
}
catch (Exception ex)
{
Console.WriteLine(ex.Message);
}
}
Klemens Nanni schrieb am 10.01.2011:
M. Dauskardts Ansatz ist durchaus sinnvoller, wobei ich auf das Try..Catch verzichten würde. Sollte es wirklich von Nöten sein, halte ich es innerhalb der GetFiles-For..Each-Schleife für angebrachter.
 

Logge dich ein, um hier zu kommentieren!