可能重复:
Java: Check if file is already open如何检查并关闭如果Excel文件是在java中已经打开
我想提出一个摆动工具在我创建并使用一个excel表由Apache poi。 如果文件已经打开,而我试图访问它,它会抛出一个异常像其他进程正在使用这个Excel文件。所以我想要的是检查,如果该Excel文件已被打开,如果是的话,关闭它。
可能重复:
Java: Check if file is already open如何检查并关闭如果Excel文件是在java中已经打开
我想提出一个摆动工具在我创建并使用一个excel表由Apache poi。 如果文件已经打开,而我试图访问它,它会抛出一个异常像其他进程正在使用这个Excel文件。所以我想要的是检查,如果该Excel文件已被打开,如果是的话,关闭它。
你做这个话题的一些谷歌搜索:下面是一些我想出了
我从第一复印答案问题在这里的计算器:
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();
}
希望这会有帮助。
FileLock是依赖于平台&不保证工作(我已经有我的公平份额不工作) – MadProgrammer 2012-07-18 09:02:18
你有没有尝试过这样的:
File file = new File(pathToFile);
if (file.canRead()) {
<do whatever you are doing with the file>
}
不,这不是解决方案。这只会告诉你文件是否可读。它在两种情况下均返回true。1.文件已打开 2.文件已关闭。 – wwwcrawl 2012-07-18 08:06:39
你想关闭* *其他程序或*你*的程序? – aioobe 2012-07-18 07:52:03
我想关闭excel文件 – wwwcrawl 2012-07-18 07:53:35
如果另一个程序使文件保持打开状态,那么您需要关闭该程序或指示程序关闭该文件。你以后哪两个人? – aioobe 2012-07-18 07:56:34