黑马程序员技术交流社区

标题: 非常急,遇到问题,急求解决 [打印本页]

作者: 黑马-唐磊    时间: 2012-8-29 21:06
标题: 非常急,遇到问题,急求解决
本帖最后由 黑马-唐磊 于 2012-8-29 23:31 编辑

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

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

RW}S8T0QH4N9}L7OHR$QJ)U.jpg

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

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

作者: 夏天    时间: 2012-8-29 21:11
make a mark
作者: 黑马-唐磊    时间: 2012-8-29 23:05
难道这个问题真的没人解决吗?我尝试了好多方法都不能删除,看来必须得重装系统吗
作者: 王陶成    时间: 2012-8-29 23:36
拿软件粉碎
作者: 黑马-唐磊    时间: 2012-8-29 23:42
王陶成 发表于 2012-8-29 23:36
拿软件粉碎

搞软件粉碎了,但也不起作用,出现错误提示
作者: 谭海鹏    时间: 2012-8-29 23:53
试试这个可以吗?

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"));//文件路径
        }
}




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