代码如下。但是如果给出路径的目录下没有文件,结果不能返回该目录的路径,例如,给出的路径"d:"+File.separator+"text";text是一个空文件夹,运行之后,什么都不显示,而我想要的结果是控制台显示text的路径:d:\text这样子的。 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);
}
}
}

解决方案 »

  1.   

    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);    
                }
            }
        }
      

  2.   

    public static void fun(File f) {
    if (f != null) {
        if (f.isDirectory()) {
    System.out.println(f); File[] files = f.listFiles();
    if (files != null) {
        for (int i = 0; i < files.length; i++) {
    fun(files[i]);
        }
    }
        } else {
    System.out.println(f);
        }
    }
        }
      

  3.   

    f是File类的对象,System.out.println(f),可以直接输出对象吗?最好是f的一个属性(path)存放路径,然后输出System.out.println(f.path)
      

  4.   

    f.isDirectory()判断了,只有文件才打印,所以文件夹都不会打印的