私は実際に同様のJava 6ファイルの削除の問題について議論し、flie削除のこれらの同様の投稿で解決策を見つけることができないPost1とPost2です。Java 6のファイル削除RandomAccessFileで
私は、FTPサーバーからファイルをダウンロードするアプリケーションに取り組んでいます。このダウンロードは、ストリームを取得し、このストリームから読み取り、ファイルRandomAccessFile
に書き込むことによって実現されます。ダウンロードが破損している場合は、ディスク上のファイルを削除したいと考えています。
私は手動でファイルを削除することができませんかapplication.Itを経由して、いくつかのファイルハンドラは、まだファイル削除が失敗であるため、先のファイルのロックを持っていることは非常に明白です。 しかし、私はすべてのファイルとストリームオブジェクトを閉じることを確認したので、どのファイルハンドラがファイルロックを持っているのか理解できません。
最後に、コードスニペット
public class OprDownload extends Observable implements Runnable
{
public void run()
{
//Code to connect to ftp,obtain the stream and write to a file
if (download complete)
{
if(mwwObjFile!=null)
{
mwwObjFile.close();
}
if(stream!=null)
{
stream.close();
}
if(compareChecksum())//If checksum match success
{
updateDownloadDetails();
cwwIntStatus = COMPLETE;
}
else
{
cwwIntStatus = CHECKSUM_FAIL;
deleteCorruptUpdateFromDownloadsFolder();
}
}
}
public void deleteCorruptUpdateFromDownloadsFolder()
{
String fileOndisk = "FileName";
File mwwFileToBeDeleted = new File(fileOndisk);
if(mwwFileToBeDeleted .exists())
{
System.out.println("File Deleted"+mwwFileToBeDeleted .delete());
}
}
}
は、あなたの比較チェックサムコードは、ファイルから読み込むのですか?はいの場合は、すべてのストリームを閉じますか? –
ビンゴ!オーケー 私は比較チェックサムcode.Thanks – shabeena