2014-07-05 3 views
0

파일, 폴더 및 하위 폴더의 내용을 표시하는 Java 프로그램이 있습니다.java 폴더의 내용을 표시합니다.

public static void displayContent(File curFolder, int indent){ 

    if(curDir.isFile()){ 
     System.out.println(curDir.getName()); 
    } else if(curDir.isFolder()){ 
     System.out.println(curDir.getName()); 
     if(curDir.length() > 0){ 
      for(File file: curDir.listFiles()){ 
       displayContent(file, indent + 4); 
      } 
     } 
    } 
} 

내 프로그램을 테스트하기 위해 일련의 하위 폴더가있는 테스트 폴더를 만들었고 매우 잘 실행됩니다.

  1. 그것은 예 : "모든 사용자", "응용 프로그램 데이터로 내가 폴더에서 찾을 수없는 폴더를 표시 나는 그런 "C:\Users" 등의 시스템 폴더를 테스트하기 위해 내 프로그램을 사용하는 경우, 그것은 예기치 않은 결과를 많이 반환 ". 또한 숨겨진 파일이 아닙니다.

  2. 일부 폴더와 파일은 존재하지만 내 검색 결과에는 표시되지 않습니다. 이러한 파일이 들어있는 폴더의 이름은 점으로 시작합니다 (예 : ".android"). 이 유형의 폴더 란 무엇입니까? 어떻게 처리할까요?

내 OS는 Windows 8입니다. IDE는 NetBeans 8.0입니다.

+0

루프를 게시 할 수 있습니까? – Typo

+0

displayContent (File curFolder, int indent) 메서드는 재귀 적입니다. – user3204065

+0

죄송합니다 ... 내 잘못 : D – Typo

답변

0

이름을 인쇄하는 대신 경로를 인쇄하고 싶습니다. 그렇게하면 폴더 구조를 볼 수 있습니다. 또한 코드에 오타가 많이있는 것 같습니다.

public static void displayContent(File curDir, int indent) { // <-- curDir used below 
    if (curDir.isFile()) { 
    System.out.println(curDir.getPath()); 
    } else if (curDir.isDirectory()) { 
    System.out.println(curDir.getPath()); 
    for (File file : curDir.listFiles()) { 
     displayContent(file, indent + 4); // <-- displayContent not displayContents. 
    } 
    } 
} 
+0

오타를 바로 잡아 주셔서 감사합니다. 경로가 더 잘 작동 할 수 있습니다. 하지만 결과에서 폴더를 찾는 방법은 존재하지 않지만 어떻게해야합니까? – user3204065

+0

결과의 폴더가 존재하기 때문에 코드가 실제로 충분한 정보를 제공하지 않기 때문에 어떤 폴더인지 모릅니다. 명령 프롬프트를 보거나 숨겨진 파일과 폴더를 표시하도록 탐색기를 구성하십시오. –

관련 문제