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.Xml,请改用 LINQ 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 instante 或将代码更改为

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

不想发布 necropost,但我刚看到这篇文章,我得到了同样的错误。

原来文件夹设置为:

  • 只读

这不允许 C# 写入解决方案中的任何文件。

要解决此问题,请访问:

  • 右键单击包含所有 C# .sln 文件的主文件夹
  • 转到属性
  • 在窗口的最底部将有一个名为:只读(仅适用于文件夹中的文件)的检查

这是上述文件夹的链接: 特性

真的很愚蠢,但很容易忘记一些事情!

于 2019-04-06T02:12:04.160 回答
1

没有管理员模式,您无法C:\从 VS 写入文件。您需要在管理员模式下运行您的应用程序/VS 才能将文件写入C:\. 或者您可以在其中创建一个文件夹C:\并在该文件夹中写入文件。

代码

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

在上面的代码中,您不需要在管理员模式下运行 application/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 回答