Мой код работает только построчно - PullRequest
0 голосов
/ 06 апреля 2020

Вот мой код:

PdfSharp.Pdf.PdfDocument document = PdfReader.Open(filePath);

document.Info.Author = "";
document.Info.Title = "";
document.Info.Creator = "";

document.Close();
document.Dispose();

document.Save(filePath);

Когда я выполняю его построчно в режиме отладки, он отлично работает. Но когда я запускаю его без выполнения построчно, я получаю сообщение об ошибке «filePath используется другим процессом» при операции сохранения.

В чем проблема?

Ответы [ 3 ]

1 голос
/ 06 апреля 2020

Измените код на этот;

using (PdfSharp.Pdf.PdfDocument document = PdfReader.Open(filePath))
{
    document.Info.Author = "";
    document.Info.Title = "";
    document.Info.Creator = "";

    document.Save(filePath);
    document.Close();
}

Как отметил в комментарии Йерун ван Ланген, вы не можете закрыть и удалить, а затем сохранить. Оператор использования позаботится о вашем распоряжении.

Редактировать;

Исправление относительно закрытия.

0 голосов
/ 06 апреля 2020

Я решил это. Проблема была в антивирусе. Когда я его выключил, все работало идеально. Спасибо всем вам

0 голосов
/ 06 апреля 2020

Вы должны использовать оператор using. using используется для выполнения тяжелых задач, когда оператор using завершен sh, это вызов Dispose, оператор using обеспечивает вызов Dispose.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...