A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

© 李东梁 中级黑马   /  2014-3-25 16:53  /  887 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 李东梁 于 2014-3-25 17:36 编辑
  1. public class RemoveDemo {

  2.         public static void main(String[] args) {
  3.                 File dir=new File("E:\\day14e");
  4.                 removeDir(dir);
  5.         }

  6.         /**
  7.          * @param dir
  8.          */
  9.         public static void removeDir(File dir) {
  10.                 File[]files=dir.listFiles();
  11.                 for(File file : files){
  12.                         if (file.isDirectory()) {
  13.                                 removeDir(file);
  14.                         }
  15.                         else{
  16.                                 file.delete();
  17.                         }
  18.                         dir.delete();
  19.                 }
  20.         }
  21. }
复制代码

毕老师在讲解用递归的方法
删除文件和文件夹,如归文件夹里面都有东西可以删除掉,如果文件夹的子文件夹里面没有东西,就是文件夹里面又有多个空文件夹时却删除不掉。
应该用什么样的方法删除这样的含有空文件夹的的文件夹呢?

评分

参与人数 1技术分 +1 收起 理由
枫儿 + 1 神马都是浮云

查看全部评分

2 个回复

倒序浏览
本帖最后由 菜小徐 于 2014-3-25 17:02 编辑
  1. for(File file : files){
  2.                         if (file.isDirectory()) {
  3.                                 removeDir(file);
  4.                         }
  5.                         else{
  6.                                 file.delete();
  7.                         }
  8.                         dir.delete();//把这句话放在for外面
  9.                 }
复制代码




因为for循环是判断是否是文件夹,不是就删,是就打开文件夹,但这过程中文件夹是不会被删的,所以你要在for外面把文件夹删了
回复 使用道具 举报 1 0
菜小徐 发表于 2014-3-25 16:59
因为for循环是判断是否是文件夹,不是就删,是就打开文件夹,但这过程中文件夹是不会被删的,所以你要 ...

懂了,谢谢!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马