File 객체의 깊이 및 삭제 연습입니다.

1477 단어
디렉터리를 깊이 훑어볼 때, 디렉터리가 있으면 디렉터리를 계속 깊이 훑어보며, 이 하위 디렉터리를 다 훑어볼 때, 그 다음에 아까 아버지 디렉터리를 계속 훑어보십시오.주로 귀착된 사상에 관련된다.
package Filelist;

import java.io.File;

public class FileDeepList {

	/**
	 * @param args
	 */
	public static void main(String[] args) {

		File dir = new File("D:\\dir");
		 listFile(dir,0);
//		deleteDir(dir);

	}

	public static void deleteDir(File dir) {
		File[] files = dir.listFiles();
		for (File file : files) {
			if (file.isDirectory()) {
				deleteDir(file);// 
			} else {
				System.out.println(file + " : " + file.delete());// 
			}
		}
		System.out.println(dir + " : " + dir.delete());// 。 。
	}
	/**
	 *  leave getSpace() 。
	 * @param dir
	 * @param leave
	 */
	public static void listFile(File dir, int leave) {
		// System.out.println(" : "+dir.getAbsolutePath());
		System.out.println(getSpace(leave) + " : " + dir.getName());// 。
		File[] files = dir.listFiles();
		leave++;
		for (int i = 0; i < files.length; i++) {
			if (files[i].isDirectory())
				listFile(files[i], leave);// 
			else
				// System.out.println(" : "+files[i].getAbsolutePath());
				System.out.println(getSpace(leave) + " : " + files[i].getName());// 
		}
	}

	private static String getSpace(int leave) {
		StringBuilder sb = new StringBuilder();
		sb.append("|--");
		for (int i = 0; i < leave; i++) {
			sb.insert(0, "|  ");
		}
		return sb.toString();
	}
}

좋은 웹페이지 즐겨찾기