熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Java編程 >> Java核心技術 >> 正文

Java的File對象遞歸刪除目錄下所有內容

2013-11-23 19:21:48  來源: Java核心技術 

  一個File對象如果是目錄那麼delete()方法要求目錄已經是空的否則不能刪除為了不管如何都刪除一個指定文件夾下的所有內容於是有了今天隨手的一個小段子算是初學Java的小練習
  
  import javaio*;
  
  public class DeleteAll {
   //刪除文件夾下所有內容包括此文件夾
   public void delAll(File f) throws IOException {
    if(!fexists())//文件夾不存在不存在
     throw new IOException(指定目錄不存在:+fgetName());
    boolean rslt=true;//保存中間結果
    if(!(rslt=fdelete())){//先嘗試直接刪除
     //若文件夾非空枚舉遞歸刪除裡面內容
     File subs[] = flistFiles();
     for (int i = ; i <= subs.length - 1; i++) {
      if (subs[i].isDirectory())
       delAll(subs[i]);//遞歸刪除子文件夾內容
      rslt = subs[i].delete();//刪除子文件夾本身
     }
     rslt = f.delete();//刪除此文件夾本身
    }
    if(!rslt)
     throw new IOException("無法刪除:"+f.getName());
    return;
   }
   public static void main(String[] args) {
    DeleteAll da= new DeleteAll();
    try {
     da.delAll(new File("someDir"));
    }
    catch (IOException ex) {
     ex.printStackTrace();
    }
   }
  }
  

From:http://tw.wingwit.com/Article/program/Java/hx/201311/26727.html
    推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.