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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马-唐磊 中级黑马   /  2012-8-29 21:06  /  1578 人查看  /  5 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马-唐磊 于 2012-8-29 23:31 编辑

今天写了一个IO的程序,写完之后,发现那个文件里面无限嵌套重复文件夹,根本就删不掉,删除时候出现图中的情况。后来我写了一个用递归法删除文件的程序,还是无法删除,程序是正常运行的。但仍旧删不掉,难道是超过了int长度的范围,怎么解决,希望哪位大侠在线写个程序给我。

RW}S8T0QH4N9}L7OHR$QJ)U.jpg (16.98 KB, 下载次数: 9)

RW}S8T0QH4N9}L7OHR$QJ)U.jpg

%JQ%}R7@([OU8]GO5`BHQZJ.jpg (26.22 KB, 下载次数: 8)

%JQ%}R7@([OU8]GO5`BHQZJ.jpg

5 个回复

倒序浏览
make a mark
回复 使用道具 举报
难道这个问题真的没人解决吗?我尝试了好多方法都不能删除,看来必须得重装系统吗
回复 使用道具 举报
拿软件粉碎
回复 使用道具 举报
王陶成 发表于 2012-8-29 23:36
拿软件粉碎

搞软件粉碎了,但也不起作用,出现错误提示
回复 使用道具 举报
试试这个可以吗?

import java.util.*;
import java.io.*;

public class tt {
        //删除文件夹方法
        private void deleteDir(File file) {
                if (file.listFiles().length == 0)
                                file.getAbsoluteFile().delete();
        }
        //删除文件方法
        public void deleteFile(File file) {
                File[] temp = file.listFiles();
                for (int i = 0; i < temp.length; i++) {
                        System.out.println(temp[i].getName());
                        if (temp[i].isDirectory()) {
                                if (temp[i].listFiles().length != 0)
                                        this.deleteFile(temp[i]); //如果 文件夹里不为空 递归调用 方法
                                this.deleteDir(temp[i]);
                                } else {
                                        temp[i].delete();
                                }
                        }
        }
        public static void main(String[] args) {
                tt m = new tt();
                m.deleteFile(new File("D:\\eclipse\\TankWar"));//文件路径
        }
}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马