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?