2010-06-26 9 views
1

J'écris une application en C# (c'est très basique, pour un de mes amis), mais j'ai un objet StreamWriter qui crée un fichier local dans C :. Je dois faire Run en tant qu'administrateur, et cela fonctionne bien, mais sinon, il se bloque avec "Accès au chemin 'C: \ final.html' est refusé."Accorder l'accès de l'application WPF au lecteur local?

Je n'ai jamais travaillé avec aucune sorte de sécurité ou d'autorisations dans le code auparavant. Que puis-je faire pour lui accorder l'accès à ce dossier sans avoir à fonctionner en tant qu'administrateur?

EDIT: Voici ce que je fini par faire:

string desktop = Environment.GetFolderPath(Environment.SpecialFolder.Desktop); 
using (StreamWriter output = new StreamWriter(Path.Combine(desktop, "final.html")) 
{ 
    //...additional code 

    output.Write(inputArray.Substring(lastIndex, range.Start - lastIndex)); 

    //...additional code 

    output.Close(); 
} 

Répondre

4

En fait, vous devriez écrire à l'application des paramètres de l'utilisateur local ou le dossier Documents, pas le lecteur racine. Utilisez ApplicationData ou Personal de Environment.SpecialFolder.

+0

Génial! Cela a fait l'affaire, fonctionne bien maintenant. Merci beaucoup! – kcoppock

+1

Pour continuer: il n'y a rien WPF spécifique à la requête de sécurité - Windows moderne demandera une confirmation UAC pour la création de n'importe quel fichier à la racine. Les applications ne sont tout simplement pas censées le faire. PAS d'application, WPF ou autre. – TomTom