我正在创建一个swing实用程序,我在其中创建并使用Apache poi的excel表。 如果在我尝试访问该文件时该文件已经打开,则会抛出异常,就像其他进程正在使用此excel文件一样。所以我想要的是检查是否已打开excel文件,如果是,则关闭它。
答案 0 :(得分:2)
您是否对此主题进行过Google搜索:以下是我提出的一些
我正在复制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();
}
希望这会有所帮助。
答案 1 :(得分:-1)
你试过这个:
File file = new File(pathToFile);
if (file.canRead()) {
<do whatever you are doing with the file>
}