Учитывая ссылку на экземпляр File
, можно (программно) определить, заблокирован ли соответствующий файл, и если да, то какой процесс удерживает блокировку?обнаружение заблокированного файла
Я использую Java 5, работающий под Windows.
Спасибо, Дон
Учитывая ссылку на экземпляр File
, можно (программно) определить, заблокирован ли соответствующий файл, и если да, то какой процесс удерживает блокировку?обнаружение заблокированного файла
Я использую Java 5, работающий под Windows.
Спасибо, Дон
Я думаю, что это возможно только в родном пути. Вам необходимо получить доступ к информации FileHandle. Напишите Dll и подключите его к вашему java-приложению через JNI. Вызовите NtQuerySystemInformation с SystemHandleInformation (16). Вы получаете список со всеми открытыми ручками, ищите FileHandles, сравниваете FileHandles с вашим собственным файлом.
Очень приятно. Я думаю, что это должен быть принят ответ. –
Ознакомьтесь с http://stackoverflow.com/questions/1500174/checking-if-a-file-locked-in-java – svrist
Помогает ли эта нить? http://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open – bdhar
Я использую приложение Procexp от Sysinternal для этого обнаружения, которое славится тем, что использует низкоуровневую и недокументированную Windows apis, поэтому я никогда не ожидал, что это будет возможно на Java. Но если есть способ, было бы здорово. –