0

我有一个 C# 应用程序,我将一些数据写入文件。我在 Windows 7 专业版上遇到的问题是,当我将数据写入 时C:\ProgramData,会抛出 Access denied 接受。如果我从管理员帐户登录,此问题就会消失,如果我从其他具有管理权限的帐户登录,则会出现此问题。此问题仅在 windows 7 专业版上产生,它在所有其他版本的 windows 7 以及 windows vista 上运行良好。

try
{
XmlTextWriter myXmlTextWriter = new XmlTextWriter("Configuration.xml", null);
            myXmlTextWriter.Formatting = Formatting.Indented;
            myXmlTextWriter.WriteStartDocument(true);
            myXmlTextWriter.WriteDocType("ApplicationConfigurations", null, null, null);
            ////myXmlTextWriter.WriteComment("This file represents another fragment of a book store inventory database");
            myXmlTextWriter.WriteStartElement("Configuration");
            myXmlTextWriter.WriteElementString("firstElement",  pe.ToString());
            myXmlTextWriter.WriteEndElement();

            myXmlTextWriter.WriteEndDocument();
            myXmlTextWriter.Flush();
            myXmlTextWriter.Close();
}catch(Exception e)
{
    //Exception is thrown in Win7 professional
}
4

1 回答 1

3

这是正常的,非管理员用户帐户没有对 c:\programdata 的写入权限。默认情况下仅分配读取、执行和列表权限。这包括启用了 UAC 的管理员帐户。

AppData 文件夹应该用于写入文件。使用 Environment.GetFolderPath() 获取该文件夹的路径。

于 2010-05-24T11:04:57.997 回答