java中File类测试练习——打印目录结构
编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹)
FileList.java
import java.io.*; /* 编写一个程序,在命令行中以树状结构展现特定的文件夹及其子文件(夹) */ public class FileList { public static void main(String[] args) { //文件分隔符在Windows下是/(正斜杠) File f = new File("F:/A"); //打印f的文件名 System.out.println(f.getName()); tree(f, 1); } //递归打印目录的树状结构 private static void tree(File f, int level) { //设置缩进四个空格 String preStr = ""; for(int i=0; i<level; i++) { preStr += " "; } /* File[] listFiles() Returns an array of abstract pathnames denoting the files in the directory denoted by this abstract pathname. 返回一个抽象路径名数组,表示由这个抽象路径名表示的目录中的文件。 */ File[] childs = f.listFiles(); for(int i=0; i<childs.length; i++) { System.out.println(preStr + childs[i].getName()); /* boolean isDirectory() Tests whether the file denoted by this abstract pathname is a directory. 测试用这个抽象路径表示的文件是一个目录。 */ if(childs[i].isDirectory()) { tree(childs[i], level + 1); } } } }
F:\java>javac FileList.java F:\java>java FileList A AA AAA AAB.txt AB.txt F:\java>