Feedback

C# - Ordner und Dateien rekursiv durchlaufen

Veröffentlicht von am 06.07.2009
(2 Bewertungen)
using System.IO;
GFU-Schulungen  [Anzeige]

C# 2017/2015/2013 Grundlagen

Nach Abschluss des Kurses sind Ihnen die Datentypen und Klassenbibliotheken von C# bekannt. Außerdem sind Sie in der Lage, mit Variablen umzugehen und deren Typen zu konvertieren. Sie definieren Namespaces und setzen diese ein, Sie erstellen eigene Klassen  und bauen Trouble Shooting ein.

VB.NET Komplett

Sie stehen vo der Aufgabe, individuelle Anwendungen für Windows zu schreiben. Hier ist VB.NET die optimale Sprache. Sie erlernt sich recht leicht und passt sich komplett in die .NET Umgebung von Microsoft ein. Nach der Schulung entwickeln Sie anwenderfreundliche Programme in VB.NET . Mit den objektorientierten Modellen in VB.NET erzeugen Sie außerdem wiederverwendbare Komponenten.

        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!