クライアントからファイルをダウンロードして特定の場所に移動するjavaサーブレットを作成しています。移動後、ダウンロードしたファイルを削除します。時々linuxは.fuse_hidden ______という名前のファイルを作成します。サーバープロセスを再開するまで、それらはそこにとどまります。ダウンロード後、開いているすべてのストリームを閉じます。通常、マウントされたUSBフラッシュドライブで発生します。ここで削除しようとするとテンポラリファイルがlinuxに残ります
は私のコードスニペットは、ファイル上の少なくとも一つのオープンファイルハンドルがまだ存在することを意味
try{
...
inputStream = new RandomAccessFile(new File(sourcePath), "r");
inputChannel = inputStream.getChannel();
....
}
finally{
inputChannel.close();
inputStream .close();
}
new File(sourcePath).delete();
例外はありますか?例外がスローされた場合、その文はtry、catch、finallyブロックの外にあるため、ファイルは削除されません。 – Michael