c#中Windows 7 Professional上的文件写入问题

时间:2010-05-24 10:49:32

标签: c# .net windows-7 uac xmlwriter

我在C#中有一个应用程序,我将一些数据写入文件。我在Windows 7专业版面临的问题是,当我向C:\ProgramData写入数据时,会抛出拒绝访问的接受。如果我从管理员帐户登录此问题就会消失,如果我从其他具有管理权限的帐户登录,则会出现此问题。此问题仅在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
}

1 个答案:

答案 0 :(得分:3)

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

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