2012-07-18 113 views
0

可能重複:
Java: Check if file is already open如何檢查並關閉如果Excel文件是在java中已經打開

我想提出一個擺動工具在我創建並使用一個excel表由Apache poi。 如果文件已經打開,而我試圖訪問它,它會拋出一個異常像其他進程正在使用這個Excel文件。所以我想要的是檢查,如果該Excel文件已被打開,如果是的話,關閉它。

+0

你想關閉* *其他程序或*你*的程序? – aioobe 2012-07-18 07:52:03

+0

我想關閉excel文件 – wwwcrawl 2012-07-18 07:53:35

+1

如果另一個程序使文件保持打開狀態,那麼您需要關閉該程序或指示程序關閉該文件。你以後哪兩個人? – aioobe 2012-07-18 07:56:34

回答

1

你做這個話題的一些谷歌搜索:下面是一些我想出了

我從第一複印答案問題在這裏的計算器:

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(); 
} 

希望這會有幫助。

+0

FileLock是依賴於平臺&不保證工作(我已經有我的公平份額不工作) – MadProgrammer 2012-07-18 09:02:18

1

你有沒有嘗試過這樣的:

File file = new File(pathToFile); 
if (file.canRead()) { 
    <do whatever you are doing with the file> 
} 
+0

不,這不是解決方案。這隻會告訴你文件是否可讀。它在兩種情況下均返回true。1.文件已打開 2.文件已關閉。 – wwwcrawl 2012-07-18 08:06:39

相關問題