正常情况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);
}
}
}结果:缩进就不能正确打印了,什么地方出的问题?
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);
}
}
}结果:缩进就不能正确打印了,什么地方出的问题?
如果要用空白符缩进 System.out.print(str); //不正常的情况就是把“--”这个去掉 改为 System.out.print(str + " "); //不正常的情况就是把“--”这个去掉
我把你的两种版本复制下来,都能正常运行,
你试试这段代码能否正确打印? 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);
}
}