我正在使用带有.NET 4.0的C#,我正在尝试使用我的应用程序调试一个罕见的问题,有时程序会读取我的.xml文件,我会读取和编写配置设置并写入一个空白的XML文件。
问题是我无法在详尽的尝试之后重新创建它,所以我想我可能会确保没有已知的内置XmlDocument.Save()
功能可能导致空白文件的情况。
修改XML文件的唯一方法是使用内置的XmlNode.AppendChild()
和XmlNode.ReplaceChild()
在内存中,所以我希望问题发生在其中一个函数中或者写入磁盘{ {1}}功能。
答案 0 :(得分:4)
我找到了this个帖子。 特别是第二个答案可能值得一试。引用:
似乎有效的解决方法是替换:
doc.Save("c:\temp\Output.xml")
与
IO.File.WriteAllText("c:\temp\Output.xml", doc.OuterXml);
答案 1 :(得分:1)
我理解正确,您正在加载空白的xml文件并添加配置请求并将其保存回来。
如果是这种情况,您可能需要检查该xml文件的写入权限,有时如果您没有权限,则不会将任何内容写入文件。
我希望它可以帮到你。
答案 2 :(得分: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();
工作正常。我希望这会有所帮助。