3

新しい XML ファイルをディスクに書き込みたいのですが、次のコードでエラーが発生します。

static void Main(string[] args)
        {
            using (XmlWriter writer = XmlWriter.Create(@"C:\abc.xml"))
            {
                writer.WriteStartDocument();
                writer.WriteStartElement("Employees");
                writer.WriteEndElement();
                writer.WriteEndDocument();
            }            

            Console.ReadKey();       
       }

誰でもこれで私を助けることができますか?

注: abc.xml はまだ存在しません。

4

4 に答える 4

3

明らかに、アクセスする権利がありませんC:。アクセスできるパスを選択するか、より高い権限でアプリケーションを実行してください。

補足として、ほとんどのシナリオでは、もう使用することはお勧めしません。代わりにSystem.XmlLINQ to XML ( ) を使用してください。System.Xml.Linq

new XElement("Employees").Save("abc.xml"); // and a path that you have access to.
于 2012-09-23T18:04:07.743 に答える
2

システムによっては、ファイル @C:\ を作成するために管理者権限が必要です。

VS インスタンスを管理者として実行するか、コードを次のように変更します。

 using (XmlWriter writer = XmlWriter.Create("abc.xml"))
        {
            writer.WriteStartDocument();
            writer.WriteStartElement("Employees");
            writer.WriteEndElement();
            writer.WriteEndDocument();
        }   
于 2012-09-23T18:08:32.360 に答える
1

C:\管理者モードがないと、VS からファイルを書き込むことはできません。にファイルを書き込むには、アプリケーション/VS を管理モードで実行する必要がありますC:\。または、1 つのフォルダーを作成C:\し、そのフォルダーにファイルを書き込むこともできます。

コード

 using (XmlWriter writer = XmlWriter.Create(@"C:\folder\abc.xml"))
 {
           writer.WriteStartDocument();
           writer.WriteStartElement("Employees");
           writer.WriteEndElement();
           writer.WriteEndDocument();
  }

上記のコードでは、アプリケーション/VS を管理モードで実行する必要はありません。

注: C:\folder が存在する必要があります。そうでない場合、エラーがスローされます。

存在しない場合C:\folderは、ファイルを書き込む前に以下のコードを追加してください。

if (System.IO.Directory.Exists(@"C:\folder") == false)
{
    System.IO.Directory.CreateDirectory(@"C:\folder");
}
于 2012-09-23T18:20:51.800 に答える