1. 程式人生 > >java呼叫刪除的方法刪除檔案,方法是對的,但是卻刪除不了

java呼叫刪除的方法刪除檔案,方法是對的,但是卻刪除不了

原因是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();
    }
    %>

為什麼一定要用遞迴:該業務的特殊性,需要重新遍歷該方法