正常情况public static void main(String[] args) {
find(new File("D:/Downloads"),0);
}

public static void find(File f,int n) {
if(!f.isDirectory()) {
String str = "";
for(int i = 0; i<n;i++) {
str = str+"     ";
}
System.out.print(str+"--");
System.out.println(f.getName());
return;
}
else {
File[] ff = f.listFiles();
String str = "";
for(int i = 0; i < n;i++) {
str = str+"     ";
}
System.out.print(str+"--");
System.out.println(f.getName());
for(int i = 0;i<ff.length;i++) {
find(ff[i],n+1);
}
}
}结果:不正常情况:public static void main(String[] args) {
find(new File("D:/Downloads"),0);
}

public static void find(File f,int n) {
if(!f.isDirectory()) {
String str = "";
for(int i = 0; i<n;i++) {
str = str+"     ";
}
System.out.print(str);  //不正常的情况就是把“--”这个去掉
System.out.println(f.getName());
return;
}
else {
File[] ff = f.listFiles();
String str = "";
for(int i = 0; i < n;i++) {
str = str+"     ";
}
System.out.print(str);
System.out.println(f.getName());
for(int i = 0;i<ff.length;i++) {
find(ff[i],n+1);
}
}
}结果:缩进就不能正确打印了,什么地方出的问题?

解决方案 »

  1.   

    那你得到什么效果?
    如果要用空白符缩进  System.out.print(str);  //不正常的情况就是把“--”这个去掉 改为 System.out.print(str + "   ");  //不正常的情况就是把“--”这个去掉
      

  2.   


    我把你的两种版本复制下来,都能正常运行,
    试试这段代码能否正确打印? public static void find(File f,int n) {
                String str = "";
                for(int i = 0; i<n;i++) {
                    str = str+"     ";
                }                 ;
                System.out.println(str+f.getName());            
                if(f.isDirectory()){
             File[] ff = f.listFiles();            
             for(int i = 0;i<ff.length;i++) 
                 find(ff[i],n+1);        
                }
        }