2011-08-11 4 views
1

Les fichiers existent et j'ai accès à les supprimer sur mon compte Windows autorisé par le domaine, à partir de laquelle je compile et exécute le programme. J'ai toujours supposé que le programme utilisera ce compte lors de l'exécution d'actions sur les lecteurs réseau. Ce n'est pas le cas?Directory.Delete - UnauthorizedAccessException

J'ai essayé de courir en tant que. Exe dans les fenêtres avec un compte qui a un accès complet au dossier et aux fichiers et la même erreur est affichée. Est-ce que cela devrait fonctionner ou dois-je faire quelque chose dans le code pour permettre au programme d'exécuter certaines actions en tant qu'utilisateur? À l'heure actuelle, je n'exécute pas le code dans un thread distinct ou un travailleur d'arrière-plan. J'ai simplement créé une méthode qui exécute ce qui suit:

Directory.Delete(NetworkDirectory, true); 
Directory.Delete(NetworkDirectoryTwo, true); 

Toutes les réponses seraient appréciées.

Répondre

-1

Si vous tentez d'accéder à des fichiers/répertoires sur le réseau, vous devez disposer des autorisations appropriées sur le partage réseau, et pas uniquement sur les autorisations définies sur le dossier réel. Votre compte peut donc avoir un accès complet à C:\MyData\*, mais s'il est partagé en tant que \\mycomputer\MyData et si le dossier est partagé en lecture seule, vous obtiendrez un UnauthorizedAccessException.

+0

Le compte que j'utilise est un compte d'administrateur de domaine qui a un accès complet au partage et au lecteur. – Omniabsence

+0

@user Vous pouvez donc parcourir avec succès '\\ mycomputer \ MyData' et supprimer le dossier par l'explorateur Windows? AFAIK, votre programme devrait par défaut utiliser les informations d'identification de l'utilisateur qui le lance pour accéder aux ressources du réseau. –

+0

Je le pensais aussi. Quelque chose d'étrange se passe. Existe-t-il une méthode alternative de suppression d'un dossier et de tous ses fichiers et sous-dossiers. J'essaie de comprendre comment faire récursivement et avoir un peu de mal à trouver quelque chose qui fonctionne. – Omniabsence

Questions connexes