【发布时间】:2017-01-09 08:34:50
【问题描述】:
我正在将 XML 文件中的信息导入 SQL 数据库。导入工作正常,但某些 XML 文件中有错误,因此代码失败。我捕捉到异常并尝试将文件移动到错误文件夹,但正如我之前从文件中读取的那样,我收到一条错误消息,指出该文件正在被另一个进程使用。我已经搜索过,但还没有遇到任何治愈这个问题的方法。我已尝试保存文档,但在尝试移动时仍在使用,下面是我尝试移动文件以供参考的代码示例。任何有关如何解决此问题的建议都会很棒,并提前感谢您提供的信息。
XmlDocument doc = new XmlDocument();
try
{
doc.Load(st);
}
catch(Exception ex)
{
doc.Save(st);
if (File.Exists(st))
File.Move(st, st + "\\Error");
}
【问题讨论】:
-
你能指定你的文件夹结构吗?您的 XML 文件当前存在于何处以及您尝试将其移动到何处?
-
您确定是 XMLDocument 保持打开状态吗?它不应该这样做,因为它只是加载它,就是这样。
-
XmlDocument无法加载文件内容,但文件仍在使用中。不要尝试移动文件,只需复制它,稍后再执行清理。 -
文件夹结构如下,main/in是导入文件夹,一旦出现错误,我会尝试将其移至main/error。当我将文件正确导入到完整文件夹时,移动工作正常。
-
看到这个话题:stackoverflow.com/questions/11015965/… 我认为 doc = null 和 GC.Collect 会帮助你。