可能的重复:
Java:检查文件是否已打开 https://stackoverflow.com/questions/1390592/java-check-if-file-is-already-open
我正在制作一个 swing 实用程序,在其中创建并使用 Apache poi 的 excel 工作表。
如果在我尝试访问该文件时该文件已打开,它会抛出异常,就像其他进程正在使用此 Excel 文件一样。所以我想要的只是检查该 Excel 文件是否已打开,如果是,则将其关闭。
你有没有对这个主题进行一些谷歌搜索:这是我想出的一些
- Java:检查文件是否已打开 https://stackoverflow.com/q/1390592/851432
- 在尝试删除文件之前检查文件是否已打开 https://stackoverflow.com/q/8634377/851432
- 检查 Excel 文件是否已被另一个应用程序打开 http://www.coderanch.com/t/438783/Streams/java/checking-excel-file-already-opened
我在这里复制 stackoverflow 上第一个问题的答案:
File file = new File(fileName);
FileChannel channel = new RandomAccessFile(file, "rw").getChannel();
// Get an exclusive lock on the whole file
FileLock lock = channel.lock();
try {
lock = channel.tryLock();
// Ok. You get the lock
} catch (OverlappingFileLockException e) {
// File is open by someone else
} finally {
lock.release();
}
希望这会有所帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)