天天看點

JAVA遞歸實作輸入任意目錄,列出檔案以及檔案夾。

很經典的一道IO流題目。是我第一次在JAVA實作遞歸。

import java.awt.List;
import java.io.File;  
import java.util.*;

public class Filediguitext	 {

	public static ArrayList<File> getAllFiles(String dir){
		ArrayList<File> files=new ArrayList<File>();  
		File file =new File(dir);
		if(file.exists()&&file.isDirectory()){
			digui(file,files);
		}
		return files;  
	}
	
	
	private static void digui(File file, ArrayList<File> files) {
		File[] files2 = file.listFiles();
		if(files2==null){
			return;
		}
		for (File file2 : files2) {
			files.add(file2);
			digui(file2, files);//對參數file再一次“檢測” 如果是檔案夾(files2!=null)就在來一遍digui()
		}
	}


	public static void main(String[] args) {

		Scanner input = new Scanner(System.in);
		System.out.println("請輸入想要遞歸的檔案夾路徑");
		String Dir = input.next();
		new Filedigui().getAllFiles(Dir);
		
	}

}