0

重複の可能性:
Java: ファイルが既に開いているかどうかを確認する

Apache poi で Excel シートを作成して使用するスイング ユーティリティを作成しています。ファイルにアクセスしようとしているときにファイルが既に開かれている場合、他のプロセスがこのExcelファイルを使用しているように、例外がスローされます。そのため、そのExcelファイルが既に開いているかどうかを確認し、開いている場合は閉じます。

4

2 に答える 2

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

これが役立つことを願っています。

于 2012-07-18T07:55:51.973 に答える
-1

これを試しましたか:

File file = new File(pathToFile);
if (file.canRead()) {
  <do whatever you are doing with the file>
}
于 2012-07-18T08:00:05.283 に答える