documentBuilder: процесс не может получить доступ к файлу, потому что он используется другим процессом - PullRequest
0 голосов
/ 27 марта 2012

Я использую DocumentBuilder (из openXML API) для тех, кто не знает documentBuilder, я дам краткое объяснение: у него есть функция 'BuildDocument', которая получает список источников (каждый источник содержит wmldocument), истрока fileName для сохранения в.

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

цель этой функции - создать одно слово docx, которое содержит все источники.он объединяет несколько документов в один.в конце своей функциональности он сохраняет документ, используя:

    File.WriteAllBytes(...)

, но когда я запускаю свой проект на сервере, я получаю сообщение об ошибке: «Процесс не может получить доступ к файлу, потому что он используется другимпроцесс."пару раз все работает нормально.и в visualStudio это также работает без ошибок.в чем может быть проблема?

Ответы [ 3 ]

1 голос
/ 27 марта 2012

Возможно, файл документа уже открыт.

0 голосов
/ 27 марта 2012

Хорошо, я нашел свою ошибку, она была в моем коде, а не в DocumentBuilder.Я написал:

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

и не закрывал его.Мне пришлось изменить код на: FileInfo f = new FileInfo .... FileStream fs = f.Create ();fs.Close ();Спасибо всем за ваше желание помочь мне !!!Я действительно ценю это!

0 голосов
/ 27 марта 2012

После сохранения файла сохранения проверьте, правильно ли он был закрыт . Если это не так, то в следующий раз, когда вы попытаетесь открыть файл и добавить в него текст, вы можете получить сообщение об ошибке. Используйте что-то вроде File.Close()

...