读书人

用递归遍历目录中的所有文件解决办法

发布时间: 2012-04-30 22:33:26 作者: rapoo

用递归遍历目录中的所有文件
代码如下。但是如果给出路径的目录下没有文件,结果不能返回该目录的路径,例如,给出的路径"d:"+File.separator+"text";text是一个空文件夹,运行之后,什么都不显示,而我想要的结果是控制台显示text的路径:d:\text这样子的。

Java code
    public static void main(String[] args) {        File f=new File("d:"+File.separator);        fun(f);    }    public static void fun(File f){            if(f!=null){                if(f.isDirectory()){                     File[] files=f.listFiles();                    if(files!=null){                        for(int i=0;i<files.length;i++){                        fun(files[i]);                        }                }            }else{                System.out.println(f);                }        }    }



[解决办法]
public static void main(String[] args) {
File f=new File("d:"+File.separator);
fun(f);
}
public static void fun(File f){
if(f!=null){
if(f.isDirectory()){
File[] files=f.listFiles();
if(files!=null){
if(files.length==0) System.out.println(f.getAbsolutePath());
for(int i=0;i<files.length;i++){
fun(files[i]);
}
}
}else{
System.out.println(f);
}
}
}
[解决办法]
f.isDirectory()判断了,只有文件才打印,所以文件夹都不会打印的

读书人网 >J2SE开发

热点推荐