问题描述
- 以代码为什么不能实现显示文件夹下的所有文件和文件夹??使用了递归
-
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()); }}}
解决方案
http://blog.csdn.net/zhy_cheng/article/details/7800103
http://blog.csdn.net/xiaoyu714543065/article/details/7380203
解决方案二:
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);}
解决方案三:
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 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