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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

public class FileDeleteDemo {
        public static void main(String[] args) {
                // 封装目录。
                File file = new File("test");

                // 功能
                deleteFiles(file);
        }

        private static void deleteFiles(File file) {
                // 获取指定目录下的文件和文件夹对象(File[])
                File[] fileArray = file.listFiles();

                        // 遍历这个数组,获取到每一个文件或者文件夹对象
                        for (File f : fileArray) {
                                if (f.delete()) {
                               
                                } else {
                                        deleteFiles(f);
                                }
                        }
                       
               
        }
}


评分

参与人数 1技术分 +1 收起 理由
FFF + 1

查看全部评分

7 个回复

倒序浏览
  1.   for (File f : fileArray) {  //这里每次循环后,f都是指向根目录,如果里面还有文件夹的话,它并没有进去
  2.                                  if (f.delete()) {
  3.                                  
  4.                                  } else {
  5.                                          deleteFiles(f);
  6.                                  }
  7.                          }

复制代码

评分

参与人数 1技术分 +1 收起 理由
FFF + 1 赞一个!

查看全部评分

回复 使用道具 举报

不是很明白,我慢慢看看
回复 使用道具 举报
习嘻嘻 发表于 2013-11-15 21:44
不是很明白,我慢慢看看

比如的结构是这样test\a\b,当进入test后拿到所有文件还需要判断拿到的文件是不是文件夹,如果是就进入文件夹删掉里面的文件然后回到上个目录,主要采用了递归的思想~
回复 使用道具 举报
我先判断他能不能删除,能就删掉,如果不能就进入文件夹里面,再次调用那个方法,我这样有错吗
回复 使用道具 举报
Weix1992 发表于 2013-11-15 22:09
比如的结构是这样test\a\b,当进入test后拿到所有文件还需要判断拿到的文件是不是文件夹,如果是就进入文 ...

我先判断他能不能删除,能就删掉,如果不能就进入文件夹里面,再次调用那个方法,我这样有错吗
回复 使用道具 举报
童鞋,在退出循环的外层,补上file.delete()
回复 使用道具 举报
public static void fileD(File file){
                File [] arrayFile = file.listFiles();
                for (File fd : arrayFile) {
                        if (fd.isDirectory()) {
                                fileD(fd);
                        }
                        else {
                                System.out.println(fd.getName()+"***"+fd.delete());//这句删除目录内文件。
                        }
                }
                System.out.println(file.delete());//补充下,这句就是删除目录本身的关键。
        }
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马