在我的代码中,我有以下几行:
XmlWriterSettings writerSettings = new XmlWriterSettings();
writerSettings.Indent = true;
XmlWriter writer = XmlWriter.Create(filename, writerSettings);
document.Save(writer);
当filename
不存在时,此方法正常。但是当它发生时,我得到了这个错误(在第3行,而不是第4行):
System.IO.IOException: Sharing violation on path [the file path]
如果文件已存在,我想覆盖该文件。我该怎么做?
答案 0 :(得分:4)
如果仔细查看 IOException ,它会说这是“共享违规”。这意味着当您尝试访问此文件时,另一个程序正在使用它。通常情况下,阅读并不是一个问题,但通过写入文件,这可能会发生很多。你应该:
答案 1 :(得分:1)
问题不在于文件是否存在,而是由不同的程序(或您自己的程序)使用。如果只是文件存在,它将被覆盖并且不会引起异常。
如果您的程序已创建已存在的文件,则可能是您没有正确处理创建该文件的对象,因此该文件仍处于打开状态。
答案 2 :(得分:0)
尝试使用接受Stream的XmlWriter.Create的重载,并从File.Create(filename)传入FileStream ...