2
votes

Impossible d'écrire AppedText dans le fichier

J'ai besoin de créer un fichier et d'écrire toutes les exceptions dans un fichier. J'utilise le code ci-dessous pour ce faire.

Additional information: Access to the path 'C:\Program Files (x86)\IIS Express\Exception Detail Start-------------------------------------------' is denied`

Mais j'obtiens l'erreur ci-dessous:

File.Create(filePath);
File.AppendText("Exception Detail Start-------------------------------------------");
File.AppendText("Stack Trace :" + ex.StackTrace );
File.AppendText("Error :" + ex.Message );
File.AppendText("Exception Detail End-------------------------------------------");


0 commentaires

3 Réponses :


0
votes

Le chemin d'accès aux fichiers C \ program (x86) nécessite généralement un droit administratif pour écrire des fichiers. Essayez de démarrer votre application en tant qu'administrateur. (Vous pouvez également démarrer Visual Studio en tant qu'administrateur et exécuter votre projet)

S'il réussit à écrire dans le fichier lorsqu'il est exécuté en tant qu'administrateur, envisagez peut-être de choisir un dossier qui ne nécessite aucun privilège administratif ou d'ajouter des privilèges à un dossier choisi pour votre programme.


1 commentaires

J'obtiens l'erreur suivante lorsque la ligne stacktrace exécute des caractères illégaux dans le chemin



2
votes

File.AppendText prend un chemin de fichier et renvoie un StreamWriter . Donc, dans votre cas, vous transmettez le message d'exception comme chemin du fichier, et par conséquent le fichier n'est pas trouvé (il recherche un fichier dans le répertoire actuel nommé "Exception Detail Start ------------ ------------------------------- ").

Dans votre cas, vous voudrez peut-être utiliser File .

Ouvre un fichier, ajoute la chaîne spécifiée au fichier, puis ferme le fichier. Si le fichier n'existe pas, cette méthode crée un file, écrit la chaîne spécifiée dans le fichier, puis ferme le fichier.

Ou File.AppendAllLines .

Ajoute des lignes à un fichier, puis ferme le fichier. Si le spécifié le fichier n'existe pas, cette méthode crée un fichier, écrit le fichier spécifié lignes vers le fichier, puis ferme le fichier.

Exemple :

File.AppendAllLines(filePath, new string[] { 
    "Exception Detail Start-------------------------------------------",
    "Stack Trace :" + ex.StackTrace, 
    "Error :" + ex.Message, 
    "Exception Detail End-------------------------------------------" 
});


0 commentaires

2
votes

Vous n'écrivez pas dans le fichier que vous avez créé.

FileStream writer = File.Create(filePath);
writer.AppendText("Exception Detail Start-------------------------------------------");
writer.AppendText("Stack Trace :" + ex.StackTrace );
writer.AppendText("Error :" + ex.Message );
writer.AppendText("Exception Detail End-------------------------------------------");

Cela devrait fonctionner.


0 commentaires