文件访问被拒绝在.NET
我写在C#中,其将数据保存到XML的应用程序。当我重新打开应用程序它说文件访问被拒绝在.NET
访问路径'C:\ ProgramData \ Test \ abc.xml'被拒绝。
任何一个可以请帮我理清这个问题。
有没有办法找到原因访问被拒绝。
使用Unlocker知道是哪个程序锁定该文件,并重构代码,如果你的应用程序,你应该读或写
我猜这会显示出同样的应用程序还在锁定文件... – 2009-07-29 10:23:38
是的,但他说重启后有问题,关闭应用程序锁定文件?当然如果它正确关闭 – 2009-07-29 10:52:35
后关闭文件这将是有益的,如果你目前的找出确切原因你正在使用的代码。没有这一点,我的猜测是你的应用程序离开处理到Filestream
开放。
你应该总是处置使用Dispose模式(或使用using
construct)非托管引用。
这是一个常见的问题我已经与XML作家的过去发现的。如果正在使用的文件流没有正确关闭,则该文件将保持锁定状态。我说这是一个问题,主要是因为我注意到由于某种原因,即使应用程序已关闭,锁仍然存在,但我只在这种方式使用XML编写器时才看到它发生(不知道为什么呢)。
基本上,只要使用“使用”的关键字,以确保您的作家是正确关闭。代码应该看起来像这样:
using(XmlWriter _myXmlWriter = XmlWriter.Create(outputStream, xmlWriterSettings))
{
//Build XML here
}
您可能会收到此错误,因为您正在运行Vista或Win7并且您已打开UAC。
C:\ ProgramData需要管理员指定要写入(但不能读取)。
我刚刚发现了这个困难的方式,因为我一直在研究一个在XP上运行良好的程序,该程序使用了System.Environment.SpecialFolder.CommonApplicationData,它在Vista中指向上述位置,并且需要提升的privs才能写入到那个目录。
你能告诉你如何写入文件吗? – 2009-07-29 10:15:11