Где в процессе открытия файла?

У меня есть набор приложений, который я поддерживаю для платформ Windows. Недавно я добавил некоторый код в общую библиотеку, чтобы удалить каталог после того, как приложение с ним завершит работу. В одном приложении удаление прошло успешно; в другом я получаю сообщение о том, что файл используется другим процессом.

После загрузки Process Explorer я узнал, что уже ожидал, что процесс, содержащий папку, пытается удалить ее.

Когда я пытаюсь найти ответ в Google, все, что я вижу, это "вам нужно скачать XYZ, чтобы узнать, какой процесс удерживает файл, а затем закрыть этот процесс", где "XYZ" - это Unlocker, Process Explorer и т. Д. Я знаю процесс что содержит файл, но если я прекратить его, как он может удалить папку?

Кто-нибудь есть идеи о том, как найти код, который держит папку открытой? Из инструментов, доступных для определения того, какие процессы используют какие файлы, можно ли использовать какие-либо, чтобы найти, где в процессе открыта папка?

1 ответ

Не существует понятия "место в процессе", где файл открыт. Например, очень распространенная причина непреднамеренного открытия файлов - утечка ручек. Это означает, что файл открыт именно потому, что в процессе больше нет места для дескриптора файла.

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