JAVA求助(请各位高人指点)

来源:百度知道 编辑:UC知道 时间:2024/05/10 10:37:27
先看我这个程序
import java.io.*;
public class FileList {
public static void main(String[] args){
File file = new File(args[0]);
listFile(file);
}
public static void listFile(File f){
File[] t = f.listFiles();
if(f.isFile()) {
System.out.println(" "+f.getName());
}
else{
System.out.println("<"+f.getName()+">");
File[] file = f.listFiles();
for(int i=0;i<file.length;i++){
System.out.print(" ");
listFile(file[i]);
}
}

}
}
我想列出当前目录下所有文件和文件夹的名称(以上程序已经实现),并用缩进地方式反映层次关系;文件夹的名称用尖括号括起来。
就像这样:(输入java FileList lev1_dir1)
<lev1_dir1>
lev2_file1
<lev1_dir2>
<lev2_dir1>
lev3_file3
不过改来改去总是没改好,各位高人指点指点吧!

在迭代的时候加上个参数就可以了。代码如下:

import java.io.*;

public class FileList {
public static void main(String[] args) {
File file = new File(args[0]);
listFile(file," ");
}

public static void listFile(File f, String a) {
if (f.isFile()) {
System.out.println(a + f.getName());
} else {
System.out.println(a + "<" + f.getName() + ">");
File[] file = f.listFiles();
for (int i = 0; i < file.length; i++) {
listFile(file[i], a + " ");
}
}
}
}

你以上程序中,你仍然出现一个小问题
public static void listFile(File f){
File[] t = f.listFiles();
if(f.isFile()) {
System.out.println(" "+f.getName());
}
else{
System.out.println("<"+f.getName()+">");
File[] file = f.listFiles();
for(int i=0;i<file.length;i++){
System.out.print(" ");
listFile(