2010-08-23 2 views
4

Учитывая ссылку на экземпляр File, можно (программно) определить, заблокирован ли соответствующий файл, и если да, то какой процесс удерживает блокировку?обнаружение заблокированного файла

Я использую Java 5, работающий под Windows.

Спасибо, Дон

+1

Ознакомьтесь с http://stackoverflow.com/questions/1500174/checking-if-a-file-locked-in-java – svrist

+1

Помогает ли эта нить? http://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open – bdhar

+1

Я использую приложение Procexp от Sysinternal для этого обнаружения, которое славится тем, что использует низкоуровневую и недокументированную Windows apis, поэтому я никогда не ожидал, что это будет возможно на Java. Но если есть способ, было бы здорово. –

ответ

2

Я думаю, что это возможно только в родном пути. Вам необходимо получить доступ к информации FileHandle. Напишите Dll и подключите его к вашему java-приложению через JNI. Вызовите NtQuerySystemInformation с SystemHandleInformation (16). Вы получаете список со всеми открытыми ручками, ищите FileHandles, сравниваете FileHandles с вашим собственным файлом.

+0

Очень приятно. Я думаю, что это должен быть принят ответ. –

Смежные вопросы