Verifique se existe um executável no caminho do Windows
Se eu executar um processo comShellExecute
(ou em .net comSystem.Diagnostics.Process.Start()
) o processo do nome do arquivo para iniciar não precisa ser um caminho completo.
Se eu quiser iniciar o bloco de notas, posso usar
Process.Start("notepad.exe");
ao invés de
Process.Start(@"c:\windows\system32\notepad.exe");
porque o direcotryc:\windows\system32
faz parte da variável de ambiente PATH.
como posso verificar se existe um arquivo no PATH sem executar o processo e sem analisar a variável PATH?
System.IO.File.Exists("notepad.exe"); // returns false
(new System.IO.FileInfo("notepad.exe")).Exists; // returns false
mas preciso de algo assim:
System.IO.File.ExistsOnPath("notepad.exe"); // should return true
e
System.IO.File.GetFullPath("notepad.exe"); // (like unix which cmd) should return
// c:\windows\system32\notepad.exe
Existe uma classe predefinida para executar esta tarefa disponível na BCL?