0

ファイルにデータを書き込む C# のアプリケーションがあります。Windows 7 Professional でデータを書き込むとC:\ProgramData、アクセス拒否の受け入れがスローされるという問題に直面しています。管理者アカウントからログインすると、この問題はなくなります。管理者権限を持つ他のアカウントからログインすると、この問題が発生します。この問題は、Windows 7 Professional でのみ発生します。Windows Vista だけでなく、Windows 7 の他のすべてのフレーバーでも問題なく動作します。

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 に答える