Sprache: C#
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);
}
}
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);
}
}
Alte URL:
/snippet/ordner-und-dateien-rekursiv-durchlaufen/1172
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:
[code]
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);
}
}
[/code]
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.