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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 湛添友 中级黑马   /  2014-4-20 23:39  /  943 人查看  /  2 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

package iofile;

import java.io.File;
import java.io.IOException;

/*
* 删除一个带内容的文件目录
*
* 既然是从里往外删除 就需要用到递给
*/
public class DeleteFile
{
        public static void main(String args[]) throws IOException
        {
                File f=new File("D:\\abc");
               
               
                remove(f);
        }
        //删除文件夹级里面的内容
       
        public static void remove(File dir)
        {
                if(dir.exists())
                {//判断文件是否存在
       
                File arr[]=dir.listFiles();
               
                for(int x=0;x<arr.length;x++)
                {
                        if(!arr[x].isHidden()&&arr[x].isDirectory())//文件不是隐藏文件并且是个文件夹
                                remove(arr[x]);
                        //else为什么这里不加else会出现误删呢?
                        System.out.println("file"+arr[x].delete());
                       
                }
                        System.out.println(dir+"dir+"+dir.delete());//删除文件夹
                }
        }
}

点评

你的代码能明确点么  发表于 2014-4-20 23:47

2 个回复

倒序浏览
代码我复制下来试了一下……不知道楼主说的误删是什么情况啊?我没有加ELSE的情况下正常删除了abc文件夹及内层文件夹,没有发现删错的情况啊?
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马