可能重複:
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