File scrittura problema su Windows 7 Professional in C #
Domanda
Ho un'applicazione in C # che scrivo alcuni dati in un file. Sto affrontando il problema su Windows 7 Professional che quando scrivo i dati a C:\ProgramData
, Accesso negato accezione è gettato. Se faccio il login da un amministratore di account questo problema svanisce, e se faccio il login da un altro conto che hanno previlages amministrative questo problema viene in su. Questo problema si produce solo su Windows 7 Professional, si sta lavorando bene su tutte le altre versioni di Windows 7 e 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
}
Soluzione
Questo è normale, gli account utente non-admin fare non avere accesso in scrittura a C: \ ProgramData. Solo leggere, eseguire e Lista privilegi vengono assegnati per impostazione predefinita. Questo include gli account di amministratore con UAC abilitato.
La cartella AppData dovrebbe essere utilizzato per i file di scrittura. Prendi il percorso di tale cartella con Environment.GetFolderPath ().