2010-07-17 4 views
2

J'ai un fichier texte dans Program Files. Je ne peux pas l'écrire à partir d'une application C# en cours d'exécution en mode non-administrateur.Accès au fichier texte en mode non-administrateur

J'utilise cet extrait

TextReader read = new StreamReader("C:\Program Files\......\link"); 

Il jette une erreur que l'accès au dossier est refusé, mais je peux le lire!

Merci

Répondre

1

L'accès à un fichier peut être différent pour la lecture et l'écriture. En tant que non-administrateur, il est normal de pouvoir lire des fichiers dans Program Files, mais pas de les écrire.

Si le fichier est un paramètre pour l'utilisateur actuel, vous devez le placer dans un dossier sous le dossier AppData. Vous pouvez trouver l'emplacement du dossier AppData en appelant Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData))

Si le fichier est un paramètre pour tous les utilisateurs de l'ordinateur, utilisez Environment.GetFolderPath(Environment.SpecialFolder.CommonApplicationData))

Voir http://msdn.microsoft.com/en-us/library/system.environment.specialfolder.aspx pour une liste d'autres emplacements possibles de dossiers spéciaux.

1

utilisateurs non administrateurs n'ont pas accès en écriture aux fichiers en C:\Program Files par défaut. Si vous voulez écrire dans un fichier accessible à tous les utilisateurs, vous devez le créer en C:\ProgramData.

0

Dans .net il y a un fichier de classe à travers lequel vous pouvez utiliser la méthode File.read (chemin du fichier) ce retour une chaîne de sorte que vous pouvez facilement gérer cela fonctionne aussi en mode non admin

+0

Cela ne règle pas vraiment le problème, n'est-ce pas? –

+0

J'ai utilisé la même classe en mode non-admin cela fonctionne –

Questions connexes