У меня есть приложение на C#, которое я пишу некоторые данные в файл. Перед Windows 7 я столкнулся с проблемой: когда я пишу данные до C:\ProgramData
, выдается Access denied acception. Если я выхожу из учетной записи администратора, эта проблема исчезнет, и если я войщу в систему с другого аккаунта, у которого есть административные превалирования, эта проблема возникает. Эта проблема возникает только в Windows 7 Professional, она отлично работает на всех других вкусах Windows 7, а также в Vista.Проблема с написанием файла в Windows 7 Professional в C#
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
}
спасибо Хансу за вашу помощь. –
Вы уверены? Я тестирую его сейчас в Windows 7, и я могу писать в папку ProgramData, даже если он не работает в учетной записи ограниченного пользователя. Однако, если я попытаюсь записать в папку Program Files, используя тот же тест, он не работает с несанкционированным доступом. –
Да. Ваш комментарий, однако, является общим ответом, который я получаю. Я не могу это доказать, но я уверен, что есть инсталляторы, которые решают общую проблему. При установке Windows по умолчанию существует * каталог * no *, с которым * все пользователи имеют доступ на запись. Cue в «ProgramData, ах, вот где программы хранят свои данные!» Затем они обнаруживают, что это не так. Поэтому они решают свою проблему, если установщик делает каталог ProgramData доступным для записи для всех пользователей. Boomshakalaka. –