黑马程序员技术交流社区

标题: 删除文件及文件夹的问题 [打印本页]

作者: 李东梁    时间: 2014-3-25 16:53
标题: 删除文件及文件夹的问题
本帖最后由 李东梁 于 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. }
复制代码

毕老师在讲解用递归的方法
删除文件和文件夹,如归文件夹里面都有东西可以删除掉,如果文件夹的子文件夹里面没有东西,就是文件夹里面又有多个空文件夹时却删除不掉。
应该用什么样的方法删除这样的含有空文件夹的的文件夹呢?
作者: 菜小徐    时间: 2014-3-25 16:59
本帖最后由 菜小徐 于 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外面把文件夹删了
作者: 李东梁    时间: 2014-3-25 17:35
菜小徐 发表于 2014-3-25 16:59
因为for循环是判断是否是文件夹,不是就删,是就打开文件夹,但这过程中文件夹是不会被删的,所以你要 ...

懂了,谢谢!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2