Prüfen Sie, ob eine ausführbare Datei im Windows-Pfad vorhanden ist

Wenn ich einen Prozess mit @ starShellExecute (oder in .net mitSystem.Diagnostics.Process.Start()) Der zu startende Dateinamenprozess muss kein vollständiger Pfad sein.

Wenn ich den Editor starten möchte, kann ich @ verwend

Process.Start("notepad.exe");

Anstatt vo

Process.Start(@"c:\windows\system32\notepad.exe");

Weil das Direcotryc:\windows\system32 ist Teil der Umgebungsvariablen PATH.

Wie kann ich überprüfen, ob eine Datei im PATH vorhanden ist, ohne den Prozess auszuführen und ohne die Variable PATH zu analysieren?

System.IO.File.Exists("notepad.exe"); // returns false
(new System.IO.FileInfo("notepad.exe")).Exists; // returns false

aber ich brauche so etwas:

System.IO.File.ExistsOnPath("notepad.exe"); // should return true

un

System.IO.File.GetFullPath("notepad.exe"); // (like unix which cmd) should return
                                           // c:\windows\system32\notepad.exe

Ist in der BCL eine vordefinierte Klasse für diese Aufgabe verfügbar?

Antworten auf die Frage(12)

Ihre Antwort auf die Frage