java呼叫刪除的方法刪除檔案,方法是對的,但是卻刪除不了
阿新 • • 發佈:2019-02-12
原因是jvm佔用著檔案 (你自己可以手動刪除一下,如果刪除不了,就是被佔用了)
解決方案:在執行該方案前把垃圾回收一下,System.gc();
eg1;
File file =new File(new SystemParameterBeans().getSystemParameterValue("SBWJCFLJ")+"/gyscptp/"+equipementId+"/thumb/"+cptp);
System.gc();
file.delete();
eg2:(這種寫法實在jsp中的呼叫java方法的寫法)
該方法可以刪除制定目錄或者檔案(及其子目錄),運用了遞迴的方法
<%! public static void deleteAll(File path) {
System.gc();
if (!path.exists()) //路徑存在
return;
if (path.isFile()) { //是檔案
path.delete();
return;
}
File[] files = path.listFiles();//如果裡面有目錄會繼續遍歷該目錄的
for (int i = 0; i < files.length; i++) {
deleteAll(files[i]);
}
path.delete();
}
%>
為什麼一定要用遞迴:該業務的特殊性,需要重新遍歷該方法