java.io.File类中提供listFile()方法来列举出该文件夹下所有子文件和子文件夹
实现代码:
import java.io.File;
public class FileList{
public static void main(String args[]){
File f= new File(args[0]);
System.out.println(f.getName());
fileList(f,0);
}
public static void fileList(File myFile,int level){
File []childFiles = myFile.listFiles();
for(int i=0;i<childFiles.length;i++){
for(int j=0;j<level;j++)
System.out.print(" ┃");
//如果是最后一个文件,使用┗表示层次
//否则用┣表示
if(i==childFiles.length-1)
System.out.println(" ┗"+childFiles[i].getName());
else
System.out.println(" ┣"+childFiles[i].getName());
//如果子文件是文件夹,递归调用本函数
if(childFiles[i].isDirectory())
fileList(childFiles[i],level+1);
}
}
}
结果:
D:\javawork>java FileList D:\javawork
javawork
┣1
┃ ┣1
┃ ┃ ┣Game.class
┃ ┃ ┣Game.java
┃ ┃ ┗Game.java.bak
┃ ┣Ding.java
┃ ┣Game.java
┃ ┗SquareShape.java
┣ArrayClass.class
┣ArrayClass.java
┣ArrayClass.java.bak
┣ArrayTest.class
┣ArrayTest.java
┣ArrayTest.java.bak
┣Calc.class
┣Calc.java
┣Calc.java.bak
┣CheckNonRome.class
┣CheckNonRome.java
┣CheckNonRome.java.bak
┣Checkrome.class
┣Checkrome.java
┣Checkrome.java.bak
┣Circle.class
┣Circle.java
┣Circle.java.bak
┣CONFIG.txt
┣CountChar.class
┣CountChar.java
┣CountChar.java.bak
┣event
┃ ┣ButtonListener.class
┃ ┣TestButton.class
┃ ┣TestButton.java
┃ ┣TestButton.java.bak
┃ ┣TestWindowEvent.class
┃ ┣TestWindowEvent.java
┃ ┗TestWindowEvent.java.bak
┣FileConfig.class
┣FileConfig.java
┣FileConfig.java.bak
┣FileList.class
┣FileList.java
┣FileList.java.bak
┣FindSale.class
┣FindSale.java
┣FindSale.java.bak
┣GradeExam.class
┣GradeExam.java
┣GradeExam.java.bak
┣graphics
┃ ┣TestDraw.class
┃ ┣TestDraw.java
┃ ┗TestDraw.java.bak
┣gui
┃ ┣MyFrame.class
┃ ┣MyFrame.java
┃ ┣MyFrame.java.bak
┃ ┣TestPane.class
┃ ┣TestPane.java
┃ ┣TestPane.java.bak
┃ ┣TestSwing.class
┃ ┣TestSwing.java
┃ ┗TestSwing.java.bak
┣Gys.class
┣Gys.java
┣Gys.java.bak
┣helloworld.class
┣helloworld.java
┣helloworld.java.bak
┣Io.class
┣Io.java
┣Io.java.bak
┣lesson1
┃ ┗test.java
┣lesson2
┃ ┣A.class
┃ ┣Args.class
┃ ┣Args.java
┃ ┣Args.java.bak
┃ ┣array.java.bak
┃ ┣p1
┃ ┃ ┗Test.class
┃ ┣P1.class
┃ ┣P1.java
┃ ┣P1.java.bak
┃ ┣p11
┃ ┃ ┗Test.class
┃ ┣P4.class
┃ ┣P4.java
┃ ┣P4.java.bak
┃ ┣P5.class
┃ ┣P5.java
┃ ┣P5.java.bak
┃ ┣P7.java
┃ ┣P7.java.bak
┃ ┣Parent.class
┃ ┣T1.class
┃ ┣T1.java
┃ ┣T1.java.bak
┃ ┣Test.class
┃ ┣Test.java
┃ ┣Test.java.bak
┃ ┣Test1.class
┃ ┣Test1.java
┃ ┣Test1.java.bak
┃ ┣TestPackage.class
┃ ┣TestPackage.java
┃ ┣TestPackage.java.bak
┃ ┣Wrapper.class
┃ ┣Wrapper.java
┃ ┗Wrapper.java.bak
┣Loan.java
┣Loan.java.bak
┣Prame.class
┣Prame.java
┣Prame.java.bak
┣Print.class
┣Print.java
┣Print.java.bak
┣PrintCalender.class
┣PrintCalender.java
┣PrintCalender.java.bak
┣Ssq.class
┣Ssq.java
┣Ssq.java.bak
┣swing
┃ ┣SwingComponent$1.class
┃ ┣SwingComponent$2.class
┃ ┣SwingComponent.class
┃ ┣SwingComponent.java
┃ ┗SwingComponent.java.bak
┣Test.class
┣Test.java
┣Test.java.bak
┣TestFrame.class
┣TestFrame.java
┣TestFrame.java.bak
┣TestPassArray.class
┣TestPassArray.java
┣TestPassArray.java.bak
┣TetsPassArray.java.bak
┣Welcome.class
┣Welcome.java
┣Welcome.java.bak
┣Write.class
┣Write.java
┗Write.java.bak