Donc, je travaille sur un simple programme .NET pour le travail et de frapper un peu d'un barrage routier bizarre que je peux ' t comprendre. L'application utilise un fichier de configuration qui ajoute des applications à un menu déroulant. Cependant, avant qu'il ne soit ajouté au menu, il fait un fichier system.io.file.exists pour vérifier que le fichier existe, au moins au moment de la création du menu.System.IO.File.Exists (@ "C: Windows System32 SnippingTool.exe") renvoie false
Toutefois, System.IO.File.Exists (@ "C: \ Windows \ System32 \ SnippingTool.exe") renvoie la valeur false, mais l'exécutable est présent. De même, stikynot.exe renvoie également false. Les autres fichiers du répertoire system32 renvoient true (comme le bloc-notes). Je peux filestat ces applications, mais mon programme de .net juste ne peut pas les lire et system.io.file.exists renvoie le faux. J'ai vérifié diverses autorisations sans succès. Il semble être isolé à quelques applications, mais je ne sais pas pourquoi.
Est-ce que le compte que le programme est en cours d'exécution sous ont des autorisations pour accéder à cet emplacement? Si non, vous obtiendrez faux sur cet appel. – Oded
Oui, et il peut trouver d'autres applications dans ce répertoire très bien. – Morcalavin
duplication possible de [C# Vérifie si un exécutable existe dans le chemin de Windows] (http://stackoverflow.com/questions/3855956/c-sharp-check-if-an-executable-exists-in-the-windows-path – Arion