Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von elbardoni
Thema: Unterordner rekursiv durchlaufen, aber nur bis zur einer bestimmten Tiefe
Am im Forum: GUI: Windows-Forms

Ihr seit Klasse
Vielen lieben Dank.

Thema: Unterordner rekursiv durchlaufen, aber nur bis zur einer bestimmten Tiefe
Am im Forum: GUI: Windows-Forms

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.