Как использовать SysInternal Handle, чтобы определить, какой объект в коде заблокировал файл "Test File.pdf"

Мне нужно знать, как я могу использовать Handle, чтобы определить, какой объект в коде заблокировал PDF-файл.

Я сгенерировал PDF-файл с отчетами в фоновом режиме, отправил получателям письмо по электронной почте, а затем хотел удалить файл, но получал это сообщение.

 System.IO.IOException: The process cannot access the file 'c:\test\First Report for test.pdf' because it is being used by another process.
       at System.IO.__Error.WinIOError(Int32 errorCode, String maybeFullPath)
       at System.IO.File.InternalDelete(String path, Boolean checkHost)
       at System.IO.File.Delete(String path)

Я распорядился ReportDocument & SmtpClient объект, но это не помогло, то я попытался ProcessExplorer и дескриптор командной строки с помощью следующей команды

C:\Users\demouser\SysinternalsSuite> handle test\First Report for test.pdf

и это тоже не помогло. Я снова проверил код и решил проблему, вызвав метод dispose MailMessage

Поэтому мне интересно, можно ли использовать handle в первом случае для идентификации объекта блокировки в коде.

0 ответов

Другие вопросы по тегам