无法在文件中写入AppedText

时间:2019-06-20 09:22:53

标签: c# asp.net c#-4.0

我需要创建一个文件,并将每个异常都写入文件中。我正在使用波纹管代码来做到这一点。

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

但我发现了以下错误:

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

3 个答案:

答案 0 :(得分:2)

您不写入创建的文件。

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-------------------------------------------");

这应该有效。

答案 1 :(得分:1)

File.AppendText采用文件路径并返回// example const x = { a: 1, b: { c: []}} const y = {...x, b: { [x.b.c] : [...x.b.c, 1] }} console.log(y);。因此,在您的情况下,您将异常消息作为文件路径传递,因此找不到该文件(它正在当前目录中查找名为“ Exception Detail Start ------------的文件” -------------------------------“)。

在您的情况下,您可能要使用File.AppendAllText

  

打开一个文件,将指定的字符串附加到该文件,然后   关闭文件。如果文件不存在,此方法将创建一个   文件,将指定的字符串写入文件,然后关闭文件。

File.AppendAllLines

  

将行附加到文件,然后关闭文件。如果指定   文件不存在,此方法创建一个文件,写入指定的   行到文件,然后关闭文件。

示例:

StreamWriter

答案 2 :(得分:0)

您的C \ program文件(x86)路径通常需要管理权限才能写入文件。尝试以管理员身份启动应用程序。 (或者以管理员身份启动Visual Studio并运行您的项目)

如果在以管理员身份运行时成功写入文件,则可以考虑选择一个不需要管理特权的文件夹,或者将特权添加到程序的所选文件夹中。