Guten Tag,
Mein Programm soll mit der Möglichkeit der Angabe der Tiefe der Unterordner ab ein bestimmten Verzeichnis rekursiv suchen.
Es soll die Möglichkeit gegeben werden entweder alle Unterordner rekursiv zu durchlaufen oder halt bis zur einer bestimmten Tiefe.
Hier für habe ich eine Funktion geschrieben, dass mir den gewünschten Verzeichnis setzt
//Das Verzeichnis wird gesetzt
public string setVerzeichnis()
{
DialogResult mm_res = verzeichnisBrowser.ShowDialog();
if (mm_res == DialogResult.OK)
{
tbStartpfad.Text = verzeichnisBrowser.SelectedPath;
}
verzeichnisBrowser.SelectedPath = tbStartpfad.Text;
return tbStartpfad.Text;
}
und die Suche selber
//Variable für den Ordner im gewählten Pfad bzw. Verzeichnis
DirectoryInfo m_di = new DirectoryInfo(Verzeichnis);
//Rekursive Suche
if ((ucSuche1.gewählteSuchOption.Rekursiv == true) && (ucSuche1.gewählteSuchOption.alleUnterordner == true))
{
DirectoryInfo[] m_subdirs = m_di.GetDirectories();
for (int i = 0; i < m_subdirs.Length; ++i)
{
//Rekursiver Aufruf der Funktion
Suche(m_subdirs[i].FullName);
}
}
else
{
if (ucSuche1.gewählteSuchOption.Rekursiv == true)
{
DirectoryInfo[] m_subdirs = m_di.GetDirectories();
for (int i = 0; i < ucSuche1.gewählteSuchOption.Rekursivzahl; ++i)
{
// if (m_subdirs.Length > ucSuche1.gewählteSuchOption.Rekursivzahl)
{
//Rekursiver Aufruf der Funktion
Suche(m_subdirs[i].FullName);
}
}
}
}
Die "normale" rekursive Suche funktioniert, aber ich weis nicht wie ich es mit der Tiefe machen soll.
Ich brauche unbedingt Hilfe.
Ich bin für jede Hilfe echt dankbar.
++Rekursion ++
(lat. , die) siehe Rekursion
Hallo elbardoni,
auch wenn es schon gelöst ist:
[Tutorial] Bäume durchlaufen mit Rekursion (und Alternativen)
[Snippet] Verzeichnisse und Dateien rekursiv durchlaufen
und
[Tipp] Anfängerfehler == true / == false
Das mit der Tiefe löst du wie EifelYeti schon sagte: Gib ein int mit, prüfe das ab und brich entsprechend ab.
Gruss
Coffeebean
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck