私はいくつかのハウスキーピングタスクを実行するための一時ディレクトリを作成しています。これらのタスクがすべて完了するとすぐに削除したいと考えています。これらのジョブは例外をスローすることができますが、これらのすべてのテンポラリファイルを手動で削除する必要はありません。ここにその様子があります:finallyブロックでディレクトリを削除しますか?
try{
Path p = //tmp dir
doJob1(p);
doJob2(p);
} finally{
p.toFile().delete();
}
私はそれのようなものを見たことはありません。 finally
ブロックのロック解除は一般的です。しかし、ファイルの削除はどうですか?いくつかの欠点はありますか? p
を想定し
https://docs.oracle.com/javase/8/docs/api/java/io/File.html#deleteOnExit--を使用することをお勧めします。 –
@davida '終了時に削除'は、削除するファイルのリストを作成します。これは、実行中のプロセス(Webサーバーなど)でメモリホッグになります。 –