Eine bestimmte exe-Datei im System suchen



  • Als Beispiel für die Suche nach einer bestimmten exe-Datei hier nach winword.exe

    string suche = "winword.exe";
        string root  = "c:\\program files\\microsoft office";  // wird gefunden!
     // string root  = "c:\\program files";              // wird nicht gefunden!
     // string root  = "c:\\";                           // wird nicht gefunden!
        string pfad = "";
        bool   gefunden = false;
        int    i = 0;
        try
        {
            foreach (string f in Directory.EnumerateFiles(root, suche,
                     SearchOption.AllDirectories))
            {
                pfad = f.ToLower();
                listBox1.Items.Add(pfad.ToString());
                gefunden = true;
                i++;
            }
        }
        catch
        {
             // nicht zugriffsberechtigte files werden abgefangen!
        }
        // Kontrolle
        if (gefunden) label3.Text = "gefunden:    " + i.ToString() 
                                     + "   " + pfad.ToString();
        else          label3.Text = "nicht gefunden!";
    

    Problem:

    Ich kann als root-Verzeichnis nicht "C:" oder "c:\program files" angeben.
    try / catch läuft so nicht -> geliefert: i = o, kein pfad



  • Du musst das vermutlich selbst rekursiv ausprogrammieren, und dann selbst Fehler wegen Access Denied ignorieren. Wegen Verzeichnissen wie "System Volumen Information" etc.

    try / catch läuft so nicht -> geliefert: i = o, kein pfad

    Das nix Deutsch.





  • Th69 schrieb:

    Hallo berniebutt,

    s. [Snippet] Verzeichnisse und Dateien rekursiv durchlaufen

    Ist schon ganz gut für den Zweck. Muss aber selbst stark erweitert werden.
    Suche für eigenes Programm die Funktion [Start] suchen [myFile.exe][Dateipfad öffnen]
    und genauso schnell.

    Finde leider nichts fertiges.

    @hustbaer: alles nix gut Deutsch!

    edit: Lösung gefunden. Läuft aber noch sehr langsam.


Anmelden zum Antworten