Проблема с записью файлов в Windows 7 Professional в c # - PullRequest
0 голосов
/ 24 мая 2010

У меня есть приложение на C #, в которое я записываю некоторые данные в файл. Я сталкиваюсь с проблемой на Windows 7 Professional, что, когда я записываю данные в C:\ProgramData, в доступе отказано в доступе. Если я вхожу из учетной записи администратора, эта проблема исчезает, и если я вхожу из другой учетной записи, у которой есть права администратора, эта проблема возникает. Эта проблема возникает только на Windows 7 Professional, она отлично работает на всех других версиях 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 Ответ

3 голосов
/ 24 мая 2010

Это нормально, учетные записи пользователей без прав администратора не имеют право на запись в c: \ programdata. Только права на чтение, выполнение и список назначаются по умолчанию. Это включает учетные записи администратора с включенным контролем учетных записей.

Папка AppData должна использоваться для записи файлов. Получить путь к этой папке с помощью Environment.GetFolderPath ().

...