java 列举文件夹下所有子文件夹和子文件的实现

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

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值