2009-01-28 12 views
1

Il s'agit d'un problème de sécurité vraiment étrange avec une application console C# (3.0).Accès au fichier refusé, erreur d'application de la console C#

L'application crée un dossier et copie un tas de fichiers dans ce dossier, puis génère également des fichiers et les enregistre dans le même dossier. Les flux de fichiers sont toujours fermés. Les fichiers copiés sont réalisés avec File.Copy. Une fois que les fichiers sont là, je ne semble pas pouvoir y accéder à nouveau - plus tard dans le code, si je veux supprimer ou ouvrir un fichier existant, j'obtiens une erreur d'accès refusé mais je viens de créer ou de copier le fichier Je sais que j'ai la permission!

Visual Studio 2008, Windows 7 (version bêta) - essayé d'exécuter en tant qu'administrateur, mais cela n'a pas aidé. J'ai également donné les permissions de dossier parent de sorte que "tout le monde" ait eu l'accès d'écriture et son sous mon dossier de documents d'utilisateur connecté.

Merci!

update: J'ai essayé sur XP et avait le même résultat si son not Win 7 :)

+0

Pouvez-vous poster du code? –

+0

Exécutez-vous éventuellement le programme à partir d'un partage réseau, ce qui entraîne un paramètre de sécurité plus strict? – casperOne

+0

non, l'application est locale et depuis que je crée les fichiers, je sais que j'ai des autorisations - voici un exemple de code: foreach (fichier de chaîne dans Directory.GetFiles (OutputPath)) File.Delete (fichier); Le chemin de sortie est \ users \ me \ documents \ projet \ temp \ * – typemismatch

Répondre

8

Les fichiers ont-ils l'attribut en lecture seule défini? Essayer de supprimer des fichiers en lecture seule peut provoquer une exception d'accès refusé.

+0

vous l'avez cloué! certains fichiers ont été copiés à partir d'un ancien dossier contrôlé par VSS et n'avaient que des attributs en lecture seule. merci :) – typemismatch

+1

+1 pour être une supposition sauvage qui a fonctionné – kurast

1

Si vous faites toutes vos déclarations de flux dans un bloc à l'aide, vous devez être assuré qu'ils ne sont pas à l'origine du problème .

+0

Pour les flux yes mais pour les opérations File.Copy/Move/Delete, il n'y a pas besoin et ceux-ci échouent aussi. Je pense que c'est un bug Win 7. – typemismatch

+0

Cela vaut la peine d'essayer - même si Win7 est en version bêta, il est beaucoup plus probable que ce soit un problème avec * votre * code qu'avec le système d'exploitation. –

Questions connexes