L’exécution de Visual Studio en tant qu’administrateur ne voit pas les lecteurs réseau mappés

J’ai un problème avec le fonctionnement de File.Exists() (ne fonctionne pas): lorsque je l’utilise, il affirme que le fichier n’existe pas (à partir de la fenêtre Immediate):

 filePath "P:\\poolman\\LY21\\2015\\LY21_2015-03-25_03.xml" File.Exists(filePath) false 

Mais si je copie / colle le chemin du fichier dans une URL de la fenêtre de l’explorateur (en supprimant le caractère d’échappement \ ), il ouvre le fichier .

Ainsi, File.Exists() affirme qu’un fichier existant n’existe pas, ce qui m’engobe.

Il ne s’agit pas de la longueur du chemin (qui est de 43) et FileInfo n’est pas une meilleure option, comme suggéré ici .

Voici le résultat de la vérification de FileInfo :

 var f = new FileInfo(filePath); {P:\poolman\LY21\2015\LY21_2015-03-25_03.xml} base: {P:\poolman\LY21\2015\LY21_2015-03-25_03.xml} _name: "LY21_2015-03-25_03.xml" Directory: {P:\poolman\LY21\2015} DirectoryName: "P:\\poolman\\LY21\\2015" Exists: false IsReadOnly: true Length: '(var f = new FileInfo(filePath);).Length' threw an exception of type 'System.IO.FileNotFoundException' Name: "LY21_2015-03-25_03.xml" 

Comment pourrais-je m’en occuper?

Si vous exécutez un processus (tel que Visual Studio) élevé (tel que vous le déclarez dans des commentaires), il ne s’exécute pas en tant qu’utilisateur Windows actuel, mais en tant qu’administrateur.

L’administrateur ne dispose pas des mappages de lecteur dont dispose votre utilisateur. Votre Visual Studio ne peut donc pas voir le lecteur P: car ce mappage est spécifique à votre utilisateur.

Voir Comment accéder aux partages réseau à partir d’un processus élevé dans Windows 7? : si cette erreur est causée par le \\server\share\file.xml lecteur P: lecteur actuel, vous pouvez utiliser le chemin UNC vers le partage: \\server\share\file.xml , où P: serait mappé sur \\server\share\ .