Vérifier si un fichier exécutable existe dans le path de Windows

Si je lance un processus avec ShellExecute (ou dans .net avec System.Diagnostics.Process.Start()) le nom de fichier du processus de démarrage n'a pas besoin d'être un chemin d'accès complet.

Si je veux démarrer le bloc-notes, je peux utiliser

Process.Start("notepad.exe");

au lieu de

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

car le répertoire c:\windows\system32 fait partie de la variable d'environnement PATH.

comment puis-je vérifier si un fichier existe sur le CHEMIN sans l'exécution du processus et sans l'analyse de la variable de CHEMIN d'accès?

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

mais j'ai besoin de quelque chose comme ceci:

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

et

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

Est-il un prédéfini classe pour faire cette tâche à la disposition de la BCL?

  • Si une classe prédéfinie serait pratique (ou est pratique, si elle existe) n'est-il pas plus qu'une ligne pour obtenir le chemin d'accès, puis vérifier exists()? Vous auriez pu écrire plus rapidement que de poser la question. Raison spéciale/besoin? Vous vous demandez juste.
  • Yepp, devrait être très facile. Mais ma conviction est que, si une tâche peut être fait avec la bibliothèque existante de probramming langue, je préfère cette façon au cours de réinventer le weel encore et encore. Si il n'y a pas qch disponible, je le fais de mon propre chef.