7

我正在将 C# 与 .NET 4.0 一起使用,并且我正在尝试调试我的应用程序的一个罕见问题,有时程序会将我的 .xml 文件读取和写入配置设置,并将写入一个空白 XML 文件。

问题是我无法在详尽尝试后重新创建它,所以我想我可能会确保不存在内置XmlDocument.Save()功能可能导致空白文件的已知情况。

修改 XML 文件的唯一方法是使用内置的内存XmlNode.AppendChild()XmlNode.ReplaceChild()因此我希望问题发生在其中一个函数中或使用该函数写入磁盘时XmlDocument.Save()

4

3 回答 3

4

我找到了这个线程。特别是倒数第二个答案可能值得一试。引用:

似乎可行的解决方法是替换:

doc.Save("c:\temp\Output.xml")

IO.File.WriteAllText("c:\temp\Output.xml", doc.OuterXml);
于 2013-01-13T13:10:31.273 回答
1

我理解正确,您正在加载空白 xml 文件并添加配置设置并将其保存回来。

如果是这种情况,您可能想要检查该 xml 文件的写入权限,有时如果您没有权限,它不会将任何内容写入文件。

我希望它可以帮助你。

于 2013-01-10T20:21:29.280 回答
0

我有一个类似的问题。我有

var infoTableWriter = new XmlTextWriter(saveFileDialog.FileName, new UTF8Encoding(false));
xmlInfoTableDoc.Save(infoTableWriter);

没有关闭作家,所以它保存了一个空(0字节)文件

var infoTableWriter = new XmlTextWriter(saveFileDialog.FileName, new UTF8Encoding(false));
xmlInfoTableDoc.Save(infoTableWriter);
infoTableWriter.Close();

工作正常。我希望这有帮助。

于 2013-07-04T11:26:29.920 回答