Java 检测锁定文件

Java 检测锁定文件,java,Java,给定对文件实例的引用,是否可以(通过编程)检测相应的文件是否被锁定,如果是,是哪个进程持有锁定 我正在使用Java 5,运行在Windows上 谢谢, Don我认为这只可能以本地方式实现。您需要访问文件句柄信息。编写Dll并通过JNI将其连接到java应用程序。使用SystemHandleInformation调用NtQuerySystemInformation(16)。您将获得一个包含所有打开句柄的列表,搜索文件句柄,将文件句柄与您自己的文件进行比较。签出此线程是否有帮助?我正在使用Sysin

给定对
文件
实例的引用,是否可以(通过编程)检测相应的文件是否被锁定,如果是,是哪个进程持有锁定

我正在使用Java 5,运行在Windows上

谢谢,
Don

我认为这只可能以本地方式实现。您需要访问文件句柄信息。编写Dll并通过JNI将其连接到java应用程序。使用SystemHandleInformation调用NtQuerySystemInformation(16)。您将获得一个包含所有打开句柄的列表,搜索文件句柄,将文件句柄与您自己的文件进行比较。

签出此线程是否有帮助?我正在使用Sysinternal的Procexp应用程序进行此检测,该应用程序以使用低级别和未记录的Windows API而闻名,因此我永远不会期望它在Java中成为可能。但如果有办法的话,那就太好了。@calavera也许有办法将其包装到java进程中。它有命令行界面吗?@seanizer我认为没有命令行界面,而且christian的解决方案是使用本机操作系统功能的正确方法。