| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 685 人关注过本帖
标题:递归删除的问题,请大家看下
只看楼主 加入收藏
林小羽
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-29
收藏
 问题点数:0 回复次数:8 
递归删除的问题,请大家看下

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


class DeleteAll{
public void DelAll(File f) throws IOException{
if (!f.exists())
System.out.println("指定的目录不存在:"+f.getName());
boolean rslt=true;
if(!(rslt=f.delete())){
File subs[]=f.listFiles();
for(int i=0;i<subs.length;i++)
{
if(subs[i].isDirectory())
DelAll(subs[i]);
rslt=subs[i].delete();
}
rslt=f.delete();
}
if(!rslt)
System.out.println("无法删除:"+f.getName());

}
}

public class Test4{
public static void main(String[] args) {
    DeleteAll all=new DeleteAll();
    da.delAll(new File("d:\\java")); 
   }
}



为啥编绎通不过呢?

搜索更多相关主题的帖子: 递归 删除 
2006-12-06 12:18
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
以下是引用林小羽在2006-12-6 12:18:40的发言:

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


class DeleteAll{
public void DelAll(File f) throws IOException{
if (!f.exists())
System.out.println("指定的目录不存在:"+f.getName());
boolean rslt=true;
if(!(rslt=f.delete())){
File subs[]=f.listFiles();
for(int i=0;i<subs.length;i++)
{
if(subs[i].isDirectory())
DelAll(subs[i]);
rslt=subs[i].delete();
}
rslt=f.delete();
}
if(!rslt)
System.out.println("无法删除:"+f.getName());

}
}

public class Test4{
public static void main(String[] args) {
    DeleteAll all=new DeleteAll();
    da.delAll(new File("d:\\java")); //这里你是想all.delAll()吧,da是怎么意思,呵呵,你自己看看
   }
}



为啥编绎通不过呢?


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-06 12:37
林小羽
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-29
收藏
得分:0 
哦,谢angeloc了,不过那是我发贴时临时改错了的,实际上是all.delAll(new File("d:\\java")); 

希望有人能把程序贴到机上试试就知道了,在d/java/下随便建几个文件和文件夹,看看效果如何,呵呵,错误蛮多

java,什么时候才能到达境界呢?
2006-12-06 13:01
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
da.delAll(new File("d:\\java"));错了两处,应该是
all.DellAll(new File("d:\\java"));
而且你好象没有异常处理。

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-06 13:14
林小羽
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-29
收藏
得分:0 

改来改去都不行,有没人帮忙改下?上面的错误都是上传时的笔误


java,什么时候才能到达境界呢?
2006-12-07 12:47
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
你到底是编译不通还是功能没实现呢?

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-07 17:22
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
以下是引用angeloc在2006-12-6 13:14:32的发言:
da.delAll(new File("d:\\java"));错了两处,应该是
all.DellAll(new File("d:\\java"));
而且你好象没有异常处理。

我这已经很明确的告诉你问题了,好吧,把代码给你,希望你下次能认真看我的回帖。
import java.io.*;
import java.io.File;
import java.io.IOException;


class DeleteAll{
public void DelAll(File f) throws IOException{
if (!f.exists())
System.out.println("指定的目录不存在:"+f.getName());
boolean rslt=true;
if(!(rslt=f.delete())){
File subs[]=f.listFiles();
for(int i=0;i<subs.length;i++)
{
if(subs[i].isDirectory())
DelAll(subs[i]);
rslt=subs[i].delete();
}
rslt=f.delete();
}
if(!rslt)
System.out.println("无法删除:"+f.getName());

}

}

class Test4
{
public static void main(String[] args)
{
try{

DeleteAll all=new DeleteAll();
all.DelAll(new File("d:\\java"));
}
catch(Exception e)
{

}

}
}
我的代码跟你的区别就是在异常处理和你所谓的笔误!


老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-07 17:26
林小羽
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-29
收藏
得分:0 
明白,原来是要进行异常处理,
DeleteAll中进行了throws,main中用到了DeleteAll,所以也要throws
失误了,谢谢版主。

java,什么时候才能到达境界呢?
2006-12-07 19:25
angeloc
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:36
帖 子:1353
专家分:0
注 册:2006-11-21
收藏
得分:0 
呵呵,下次要细心点

老牛明知夕阳晚,不用扬鞭自奋蹄; Angelo\'s BLOG
2006-12-07 23:32
快速回复:递归删除的问题,请大家看下
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025265 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved