documentBuilder:进程无法访问该文件,因为它正由另一个进程使用

时间:2012-03-27 11:25:29

标签: c# asp.net filesystems openxml openxml-sdk

我正在使用DocumentBuilder(openXML api),对于那些不了解documentBuilder的人我会给出一个简短的解释:它有一个功能' BuildDocument'获取源列表(每个源包含wmldocument),以及要保存到的fileName字符串。

    public static void BuildDocument(List<Source> sources, string fileName)

这个函数的目的是构建一个包含所有源的单词docx。它将一些文档合并为一个。 在其功能结束时,它使用以下方式保存文档:

    File.WriteAllBytes(...)

但是当我在服务器上运行我的项目时,我不断收到错误:&#34;进程无法访问该文件,因为它正由另一个进程使用。&#34; 几次它工作正常。并且在visualStudio中它也可以正常工作。 可能是什么问题?

3 个答案:

答案 0 :(得分:1)

可能文档文件已经打开。

答案 1 :(得分:0)

保存保存文件后,请检查其是否已正确关闭。如果不是,那么下次当您尝试打开文件并在其中添加文本时,您可能会收到错误。使用类似File.Close()

的内容

答案 2 :(得分:0)

好的,我发现了我的错误,它出现在我的代码中,而不是在DocumentBuilder中。 我写道:

    FileInfo f=new FileInfo....
    f.Create();

我没有关闭它。我不得不将代码更改为:             FileInfo f = new FileInfo ....             FileStream fs = f.Create();             fs.Close(); 谢谢大家的帮助!我真的很感激!