package file;
import java.io.File;
// P02 文件夹的常用方法
// 遍历某个路径下所有的文件夹和文件
public class ErgDirTest {
public static void main(String[] args) {
// readDir(new File("/Users/hike/Desktop/java/JavaSE"));
// 优化后
readDir("/Users/hike/Desktop/java/JavaSE");
}
/**
* 遍历目录 未优化
* @param dir 对应的目录
* @param spaceNums 对应的前面输出的空格数
*/
public static void readDir(File dir, int spaceNums){
for (int i = 0; i < spaceNums; i++) {
System.out.print(" ");
}
System.out.println(dir.getName());
// 获取所有的子目录
File[] subFiles = dir.listFiles();
for (File subFile : subFiles) {
if(subFile.isDirectory()) {
readDir(subFile, spaceNums + 2);
} else {
for (int i = 0; i < spaceNums +2; i++){
System.out.print(" ");
}
System.out.println(subFile.getName());
}
}
}
/**
* 重写方法 便于调用 优化1:拿掉空格
* @param dir
*/
public static void readDir(File dir){
readDir(dir, 0);
}
/**
* 传入目录的路径,遍历目录,方便调用 优化2: 只要输入路径字符串
* @param dirPath
*/
public static void readDir(String dirPath){
readDir(new File(dirPath));
}
}