`
ttitfly
  • 浏览: 622282 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

删除目录及下面的所有文件

    博客分类:
  • java
阅读更多


 /**
  * 删除目录及下面的所有文件
  */
 public static void deleteDirectory(File dir) throws IOException {
  if ((dir == null) || !dir.isDirectory()) {
   // throw new IllegalArgumentException("Argument " + dir+ " is not a
   // directory. ");
   System.out.println("Argument " + dir + " is not a directory. ");
  }
  else {
   File[] entries = dir.listFiles();
   int sz = entries.length;
   for (int i = 0; i < sz; i++) {
    if (entries[i].isDirectory()) {
     deleteDirectory(entries[i]);
    }
    else {
     entries[i].delete();
    }
   }
   /**
    *  改为deleteParentDir(dir,3); 目的:删除当前目录,如果上级目录为空,递归删除,层次由depth控制
    */
   // dir.delete();
   deleteParentDir(dir, 3);
  }
 }
 /**
  * 递归删除上级目录
  *          最底层目录,由此开始向上递归,所以应该保证此目录为空
  * @param depth
  *          递归层次
  */
 public static void deleteParentDir(File dir, int depth) throws IOException {
  if (dir == null) {
   throw new IllegalArgumentException("Argument " + dir + " is not a directory. ");
  }
  else {
   dir.delete();
   // 递归删除父目录,层次由 depth 控制
   if (depth > 0) {
    deleteParentDir(dir.getParentFile(), depth - 1);
   }
  }
 }

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics