郎咸武 2010年03月12日 星期五 16:34 | 1101次浏览 | 2条评论
双重递归删除文件 这是某某公司的面试题。
今天去某公司面试 遇得到。
和同学聊天 说起来,我们两个意见不一致。他说我的思路不对,我就写了一下。原来我的思路没错。
public class ReadFile{
public static void main(String[] args){
File f = new File("F:\\ejb");
delFile(f);
}
/**
* 递归删除文件
* @param f
*/
public static void delFile(File f){
if(!f.isDirectory()){
System.out.println(f.getName());
f.delete();
}else{
File[] f1 = f.listFiles();
// for(int i=0;i<f1.length;i++){
// delFile(f1[i]);
// }
forFile(f1.length,f1);//本行代码可以用上面 //注释掉的代码替换
}
}
/**
* 递归读取 listFiles并删除 文件
* @param x
* @param f1
*/
public static void forFile(int x,File[] f1){
if(0<x){
System.out.println(x);
delFile(f1[f1.length-x]);
forFile(--x,f1);
}else{
}
}
}
Zeuux © 2024
京ICP备05028076号
回复 徐继哲 2010年03月19日 星期五 18:23
回复 郎咸武 2010年03月19日 星期五 18:50