如何检查并关闭excel文件是否已在java中打开

时间:2012-07-18 07:47:18

标签: java io

  

可能重复:
  Java: Check if file is already open

我正在创建一个swing实用程序,我在其中创建并使用Apache poi的excel表。 如果在我尝试访问该文件时该文件已经打开,则会抛出异常,就像其他进程正在使用此excel文件一样。所以我想要的是检查是否已打开excel文件,如果是,则关闭它。

2 个答案:

答案 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>
}