为什么XmlWriter会在此代码中引发错误?

时间:2012-02-09 09:49:07

标签: c# xml

我正在尝试将一大块XML数据写入这样的文件:

using (XmlWriter writer = XmlWriter.Create("D://project//data//" + i + ".xml"))

但它会出现以下错误:

  应用程序中的服务器错误。

     

找不到路径'D:\project\data\1.xml'的一部分。

     

描述:在执行当前Web请求期间发生了未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

     

异常详细信息: System.IO.DirectoryNotFoundException:无法   找到路径'D:\project\data\1.xml'的一部分。

但是,当我使用XmlReader

读取XML时
XmlReader reader = XmlReader.Create("d://project//data.xml");

它可以无缝地创建阅读器并且不会出错。我不明白为什么。

编辑:抱歉两个文件夹路径都相同,正确的路径是d://project//data.xml

4 个答案:

答案 0 :(得分:3)

我发现了两件错误的事情。

XmlReader reader = XmlReader.Create("d://project_elysian//data.xml"); 

using (XmlWriter writer = XmlWriter.Create("D://project//data//" + i + ".xml")) 

顶部Create使用名为project_elysian的目录,第二个使用project

此外,您正在创建一个名为data.xml的文件,另一个正在使用data作为目录。如果您要查看递增文件,则需要在i变量之前删除前面的斜杠

using (XmlWriter writer = XmlWriter.Create("D:/project/data" + i + ".xml")) 

答案 1 :(得分:2)

正斜杠不需要转义。我试试这个

using (XmlWriter writer = XmlWriter.Create(@"D:\project\data\" + i + ".xml"))

在尝试使用类似

的文件创建文件之前,您还可以检查目录是否存在
if(Directory.Exists(@"D:\project\data\"))

答案 2 :(得分:2)

您必须先创建目录。

答案 3 :(得分:1)

D:\project\data\存在时,d:\project_elysian\data.xml似乎不存在。