以代码为什么不能实现显示文件夹下的所有文件和文件夹??使用了递归



public class hello3 {
    public static void main(String[] args){
        File dir=new File("C:\\Users\\pc\\Desktop\\a");
        outputFile(dir);         
        }
        public static void outputFile(File file){
            File[] aaa=file.listFiles();            
            for(int i=0;i<aaa.length;i++){
                if(aaa[i].isDirectory())
                    {if(aaa[i].length()==0)
                        System.out.println(aaa[i].getName());
                    else
                    outputFile(aaa[i]);}
                else
    System.out.println(aaa[i].getName());       
        }
}
}

if(aaa[i].isDirectory())
{if(aaa[i].length()==0)
System.out.println(aaa[i].getName());
else
outputFile(aaa[i]);}
}

改成
if(aaa[i].isDirectory())
{ outputFile(aaa[i]);

                      else
                              System.out.println(aaa[i].getName()) ;}

public static void list(File f){
if(f.exists()){
File fs[]=f.listFiles();
for(File i:fs){
//如果是文件就直接打印名称
if(i.isFile()){
System.out.println(i.getName());
}else{
//如果是目录,就继续迭代
list(i);
}

        }
    }
}
public static void main(String[] args) {        
    File f=new File("E:\\zxy_java");
    list(f);
}

http://blog.csdn.net/zhy_cheng/article/details/7800103
http://blog.csdn.net/xiaoyu714543065/article/details/7380203

public static void main(String[] args) throws ClassNotFoundException,
            InstantiationException, IllegalAccessException,
            IllegalArgumentException, SecurityException,
            InvocationTargetException, NoSuchMethodException {
        File dir = new File("C:\\Users\\");
        outputFile(dir);
    }

    public static void outputFile(File file) {
        File[] aaa = file.listFiles();
        // 需要处理aaa为空的情况,受权限影响无法获取文件夹内的内容,其实是有的,比如系统文件和隐藏文件,不同于空文件夹情况。
        if (aaa == null) {
            return;
        }
        for (int i = 0; i < aaa.length; i++) {
            if (aaa[i].isDirectory()) {
                System.out.println(aaa[i].getAbsolutePath());
                outputFile(aaa[i]);
            } else
                System.out.println("\t--" + aaa[i].getName());
        }
        }

http://www.cnblogs.com/songxingzhu/p/3395994.html