重複の可能性:
Java: ファイルが既に開いているかどうかを確認する
Apache poi で Excel シートを作成して使用するスイング ユーティリティを作成しています。ファイルにアクセスしようとしているときにファイルが既に開かれている場合、他のプロセスがこのExcelファイルを使用しているように、例外がスローされます。そのため、そのExcelファイルが既に開いているかどうかを確認し、開いている場合は閉じます。
重複の可能性:
Java: ファイルが既に開いているかどうかを確認する
Apache poi で Excel シートを作成して使用するスイング ユーティリティを作成しています。ファイルにアクセスしようとしているときにファイルが既に開かれている場合、他のプロセスがこのExcelファイルを使用しているように、例外がスローされます。そのため、そのExcelファイルが既に開いているかどうかを確認し、開いている場合は閉じます。
このトピックについて 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();
}
これが役立つことを願っています。
これを試しましたか:
File file = new File(pathToFile);
if (file.canRead()) {
<do whatever you are doing with the file>
}