JavaのFileクラスで「…によってファイルは開かれているため、操作を完了できません。」

JavaのFileクラスで「…によってファイルは開かれているため、操作を完了できません。」JavaのFileクラスでファイルの存在確認したかったんだけど、Windowsの環境下のTomcatでどうしてもファイルからプロセスを解放することができなくて。。。しばらくはまったのでメモですφ(○_○ )

表示されたエラー
Windows環境

  • Apache Tomcat 7.0 Tocmcat7 によってファイルは開かれているため、操作を完了できません。

java.nio.file.Filesクラスをつかって出したログ

  • java.nio.file.FileSystemException: プロセスはファイルにアクセスできません。別のプロセスが使用中です。

解決方法
java.nio.file.Filesのメソッドを使うことに変更

修正したコード

// ビフォーア
File fileTarget = new File("C://directory/target.txt");
if(fileTarget.exists()){
        // 正常系の処理
}
// 異常系の処理

↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

// アフター
try{
        File fileTarget = new File("C://directory/target.txt");
        Path path = fileTarget.toPath();
        Files.exists(path);
} catch (Exception ex){
        // 異常系の処理
}

参考サイトさま

以上、ご参考までで。

About the author
  • コメントを残す