bestimmter Ordner auf dem Laufwerk finden

mdo

Mitglied
Na gebt ihm doch einfach seinen Keks...

Code:
        private void button1_Click(object sender, EventArgs e)
        {
            List<string> sta_WOWDirectories = GetWOWDirectories("C:\\", "wow.exe");
            StringBuilder stb_Result = new StringBuilder();
            foreach (string directory in sta_WOWDirectories)
                stb_Result.AppendLine(directory);
            MessageBox.Show(stb_Result.ToString());
        }

        private List<string> GetWOWDirectories(string path, string filename)
        {
            List<string> lst_Result = new List<string>();
            string[] sta_Directories;
            try
            {
                //Ermittle alle Unterverzeichnisse
                sta_Directories = Directory.GetDirectories(path);
            }
            catch (Exception ex)
            {
                //Pfadnamen die größer als 248 Zeichen sind, werden hier als Fehler aufschlagen... Workaround bitte selber suchen...
                return lst_Result;
            }

            //Gehe rekursiv alle Unterverzeichnisse durch und füge die Ergebnisse dem eigenen hinzu
            foreach (string childPath in sta_Directories)            
                lst_Result.AddRange(GetWOWDirectories(childPath, filename));                
            
            //Suche im aktuellen Verzeichnis nach der Datei und füge sie dem Ergebnis hinzu, wenn gewünscht
            if (!path.EndsWith("\\"))
                path = path + "\\";
            if (File.Exists(path + filename))
                lst_Result.Add(path + filename);

            return lst_Result;
        }

@Threadersteller
Das ist C# Code, kein VB Code! Übersetzen musste schon selber, oder versuch einfach mal ein C# Projekt! C# ist eh um Welten angenehmer zu entwickeln! (vorsicht: subjektiv!) :p