ファイルが存在するかどうかを確認してからファイルを削除する方法がありますが、常に新しいファイル(Jarファイル)を作成します。create メソッドと delete メソッドにorg.eclipse.core.resources.IFileクラスを使用しています。
コードは次のようになります。
if(file != null){
if(file.exists()){
file.delete(true, monitor);
system.out.println("File deleted");
}
system.out.println("File creation starting");
file.create(stream, true, null);
system.out.println("File created");
}
問題: jar ファイルが存在する場合、削除メソッドを呼び出しますが、ログや作成メソッドなどの他のメソッドの呼び出しに失敗します。しかし、プロセス全体を段階的にデバッグすると、成功します。
この問題のシナリオの例
シナリオ 1: Jar ファイルがフォルダーにありません。delete メソッドを呼び出しません。create メソッドのみを呼び出します。ビルドは成功です。
シナリオ 2: Jar ファイルは既にフォルダー内にあります。delete メソッドを呼び出します。create メソッドまたは sysout ログを呼び出さずに、プログラムを続行します。ビルドが失敗します。
シナリオ 3: Jar ファイルは既にフォルダー内にあります。デバッグモードのステップバイステップ。delete メソッドを呼び出し、create メソッドを呼び出します。ビルドは成功です。
何が欠けているか分かりますか?delete メソッドの後に待機を入れようとしましたが、成功しましたが、この問題の最善の解決策ではないと思います。