Si j'exécute un processus avec ShellExecute
(ou .net avec System.Diagnostics.Process.Start()
), le nom du processus de démarrage n'a pas besoin d'être un chemin d'accès complet.Vérifiez si un exécutable existe dans le chemin d'accès Windows
Si je veux commencer le bloc-notes, je peux utiliser
Process.Start("notepad.exe");
au lieu de
Process.Start(@"c:\windows\system32\notepad.exe");
parce que le direcotry c:\windows\system32
fait partie de la variable d'environnement PATH.
Comment puis-je vérifier si un fichier existe sur le PATH sans exécuter le processus et sans analyser la variable PATH?
System.IO.File.Exists("notepad.exe"); // returns false
(new System.IO.FileInfo("notepad.exe")).Exists; // returns false
mais je 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
Y at-il une classe prédéfinie pour effectuer cette tâche disponible dans le BCL?
Bien qu'une telle classe prédéfinie serait pratique (ou est pratique, si elle existe) n'est pas il seulement une ligne de plus pour obtenir le chemin puis vérifier existe()? Vous auriez pu l'écrire plus rapidement que de poser la question. Raison spéciale/besoin? Je me demandais juste. – mickeyf
Yepp, devrait être très facile. Mais ma conviction est que, si une tâche peut être accomplie avec la bibliothèque existante d'un langage probramming, je préfère de cette façon réinventer la weel encore et encore. S'il n'y a pas de smth disponible, je le fais moi-même. –