/*
* 遞歸:
* 定義:函數(shù)自己調(diào)用自己
* 前提:函數(shù)總必須存在結(jié)束遞歸的條件,否則遞歸會(huì)稱為死循環(huán)痕支。
*
*
*/
package com.michael.lin;
import java.io.File;
public class Demo07 {
public static void main(String[] args){
listFiles(new File("G:\\2015java基礎(chǔ)班33期"));
listFiles2(new File("G:\\2015java基礎(chǔ)班33期"), "|");
}
//1.使用遞歸調(diào)用文件的中的所有文件(包括子孫文件)
public static void listFiles(File dir){
//1.列出當(dāng)前目錄所有的文件夾
File[] files = dir.listFiles();
//2遍歷所有的文件(夾)
for(File file : files){
if(file.isFile()){
System.out.println("---" + file.getName());
}else if(file.isDirectory()){
System.out.println("-" + file.getName()+":");
listFiles(file);
}
}
}
//2.使用遞歸函數(shù)列出文件中的所有子孫目錄谴蔑,不同級(jí)別的目錄使用定義格式分級(jí)
public static void listFiles2(File dir, String space){
//1.獲得氮?dú)饽夸浀乃形募?duì)象
File[] files = dir.listFiles();
//2.遍歷所有的餓文件對(duì)象
for(File file : files){
if(file.isFile()){
System.out.println(space+file.getName());
}else if(file.isDirectory()){
System.out.println(space+file.getName());
listFiles2(file, "|--"+space);
}
}
}
//3.使用遞歸刪除非空的文件夾
public static void deleteDeir(File dir){
File[] files = dir.listFiles();
for(File file : files){
if(file.isFile()){
file.delete();
}else if(file.isDirectory()){
deleteDeir(file);
}
}
dir.delete();
}
}