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

可能重复:
Java:检查文件是否已打开

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

你有没有关于这个主题的谷歌搜索:这是我提出的一些

  • Java:检查文件是否已打开
  • 在尝试删除文件之前检查文件是否已打开
  • 检查另一个应用程序是否已打开excel文件

我在这里复制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(); } 

希望这会有所帮助。

你试过这个:

 File file = new File(pathToFile); if (file.canRead()) {  }