Java Windowsアプリケーションは、特定の問題のデータを、同じ名前のディレクトリ(フォルダ)にあるファイルaProblem.dbに保持します(例:Documents \ MyApplication \ aProblem \ aProblem)。 db。私は、ユーザーがアプリケーションを終了せずに問題を削除できるようにしたいと思います。したがって、aProblem.dbファイルは削除する必要があり、aProblemディレクトリも空のままにしておくと削除する必要があります。 FileChooserはファイルの削除を許可していないので(少なくとも私のドキュメントを読んでから)、選択ボックスとOkボタンとCancelボタンで自分のダイアログを作成しました。選択ボックスには、ファイルx.dbを含むすべてのディレクトリxに対してMyApplicationを検索することによって入力されます。ファイルの削除と親ディレクトリの削除
次のコードは、ユーザーが選択して[OK]をクリックした後の削除部分です。これは、ディレクトリの削除が試行されたときに例外がスローされたときに、Windowsエクスプローラでディレクトリが開いている場合を除いて機能します。私はそれがエクスプローラにロックされているので、私はそれを知っているが、私はエクスプローラでそれを閉じて、もう一度やり直すようにユーザーに尋ねることを避けたいと思います。これは可能ですか?
注:JFileChooser.APPROVE_OPTIONを使用しますが、JFileShooserは使用しないでください。
int resp = dialog.showOpenDialog();
if(resp == JFileChooser.APPROVE_OPTION){
strConcoursFolderPath = dialog.getSelectedFolderFullPath();
int response = yesNoDialog("Do you really want to delete " + strConcoursFolderPath + "?");
if(response == JOptionPane.YES_OPTION) {
File dir = new File(strConcoursFolderPath);
boolean dirExist = dir.exists() && dir.isDirectory();
if(dirExist) {
String strDbFile = dialog.getSelectedFolderName() + ".db";
File db = new File(dir + "\\" + strDbFile);
if(db.exists()) db.delete();
File[] listOfFiles = dir.listFiles();
if(listOfFiles.length == 0) dir.delete();
}
}
} else {
//okDialog("Cancel button clicked");
}
の可能性のある重複[削除は、Javaでファイルをロック?](http://stackoverflow.com/questions/2885406/deleting-locked-files-with-java) –