java 폴더 디렉터리 깊이 훑어보기 실례 코드

java 폴더 디렉터리 깊이 훑어보기 실례 코드
1. 제목
지정한 디렉터리에 대해 모든 내용을 열거하거나 (하위 디렉터리의 내용을 포함) 디렉터리를 깊이 있게 훑어보는 것으로 이해할 수 있습니다.
2. 문제 풀이 사상
컴퓨터에서 파일 디렉터리를 가져와 함수를 만들어서 그 디렉터리에 있는 모든 파일을 판단해야 한다. 만약 파일이 디렉터리라면 호출 함수 자체가 계속 그 디렉터리를 훑어보고 파일이 디렉터리가 아니라면 파일 이름을 직접 출력해야 한다.디스플레이의 효과를 강화하기 위해서 getSpace 함수를 만들어서 축소할 수 있습니다.
주의해야 할 것은 C디스크의 내용을 직접 훑어보지 마라. 디렉터리의 차원이 너무 깊고 시스템급 파일이 너무 많아서 빈 바늘로 되돌아가기 쉽고 빈 바늘이 이상하게 발생하거나 D디스크를 직접 훑어보지 마라. 숨겨진 시스템 커서 디렉터리가 있으면 빈 바늘 이상이 발생하기 때문이다.
3. Java 코드

import java.io.File;
public class DepthTraversal {
  public static void main(String[] args) {
    File dir = new File("d:\\BaiduYunDownload");
    listAll(dir, 0);
  }

  public static void listAll(File dir, int level) {
    System.out.println(getSpace(level) + dir.getName());
    level++; // ,level 1
    File[] files = dir.listFiles(); // 
    for (int x = 0; x < files.length; x++) { // 
      if (files[x].isDirectory()) { // , listAll 
        listAll(files[x], level);
      } else { // , 
        System.out.println(getSpace(level) + files[x].getName());
      }
    }
  }

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

읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기