Si ejecuto un proceso con ShellExecute
(o en .net con System.Diagnostics.Process.Start()
), no es necesario que el proceso del nombre de archivo sea una ruta completa.Compruebe si existe un archivo ejecutable en la ruta de Windows
Si quiero empezar el bloc de notas, puedo usar
Process.Start("notepad.exe");
en lugar de
Process.Start(@"c:\windows\system32\notepad.exe");
porque el direcotry c:\windows\system32
forma parte de la variable de entorno PATH.
¿cómo puedo comprobar si existe un archivo en la RUTA sin ejecutar el proceso y sin analizar la variable PATH?
System.IO.File.Exists("notepad.exe"); // returns false
(new System.IO.FileInfo("notepad.exe")).Exists; // returns false
pero necesito algo como esto:
System.IO.File.ExistsOnPath("notepad.exe"); // should return true
y
System.IO.File.GetFullPath("notepad.exe"); // (like unix which cmd) should return
// c:\windows\system32\notepad.exe
¿Hay una clase predefinida hacer disponible en el BCL esta tarea?
Si bien dicha clase predefinida sería conveniente (o es conveniente, si es que existe) no es solo hay una línea más para obtener el camino, luego verificamos existe()? Podrías haberlo escrito más rápido que hacer la pregunta. ¿Razón/necesidad especial? Sólo me preguntaba. – mickeyf
Yepp, debería ser muy fácil. Pero mi convicción es que, si se puede hacer una tarea con la biblioteca existente de un lenguaje de probramming, estoy de acuerdo con reinventar el weel una y otra vez. Si no hay algo disponible, lo hago solo. –