【发布时间】:2013-12-07 16:41:25
【问题描述】:
我收到拒绝访问异常。我该如何解决这个问题?
这是一个例外:
System.UnauthorizedAccessException 未处理 HResult=-2147024891 Message=拒绝访问路径“c:\message.txt”。
来源=mscorlib
代码如下:
public static void WriteToFile(string s)
{
fs = new FileStream("c:\\message.txt",
FileMode.Append, FileAccess.Write);
sw = new StreamWriter(fs);
sw.WriteLine(s);
sw.Flush();
sw.Close();
fs.Close();
}
编辑:如果我以管理员身份运行 vs2012,它可以工作,但有没有办法或理由以普通用户身份运行?
这行得通:
public static void WriteToFile(string s)
{
fs = new FileStream(@"C:\Users\KristjanBEstur\Documents\message.txt",
FileMode.Append, FileAccess.Write);
sw = new StreamWriter(fs);
sw.WriteLine(s);
sw.Flush();
sw.Close();
fs.Close();
File.Delete(@"C:\Users\KristjanBEstur\Documents\message.txt");
}
【问题讨论】:
-
该文件可能是只读的,或者您没有写入该文件的权限。
-
@driis 文件不存在。
-
在这种情况下,您可能没有对该目录的写入权限。
-
如果您启用了 UAC 并且您没有以“管理员”身份运行您的应用程序,您通常无权直接访问系统驱动器的根目录。
-
写入根 c:\ 需要管理员权限。创建其他文件夹并在那里写入文件。例如 c:\temp\message.txt
标签: c# file access-denied unhandled-exception file-access