記錄

JAVA) CMD내 TREE 기능 구현 본문

Computer language/JAVA

JAVA) CMD내 TREE 기능 구현

surhommejk 2018. 2. 19. 16:53
package MakeDos;

import java.io.*;
import java.util.*;

public class Functions {

    List<ArrayList> dirNames_arr;

    public void showTree(File f) {
        
        List<Integer> dirindexlist = new ArrayList();

        dirNames_arr = new ArrayList();
        List<String> dirNames = new ArrayList();
        List<File> dirFiles = new ArrayList();
        File[] files = f.listFiles();

        // 파라미터로 받은 디렉토리 하위의 모든 폴더에 대한 인덱스값 catch
        int tempindex = 0;
        for (File temp : files) {
            if (temp.isDirectory()) {
                dirindexlist.add(tempindex);
            }
            tempindex++;
        }

        // catch한 인덱스값을 이용하여 폴더들 이름을 ArrayList에 add
        // node 생성을 위한 arr에 add
        for (int i = 0; i < dirindexlist.size(); i++) {
            dirNames.add(files[(dirindexlist.get(i))].getName());
            dirNames_arr.add((ArrayList) dirNames);
        }

        // catch한 인덱스값을 이용하여 폴더들을 ArrayList에 File로 add
        for (int i = 0; i < dirindexlist.size(); i++) {
            dirFiles.add(files[(dirindexlist.get(i))]);
        }

        String nodes = "";
        while (true) {
            if (f.getParentFile() != null) {
                nodes += "";

                if (f.getParentFile().getParentFile() != null) {
                    nodes += "\t";

                    if (f.getParentFile().getParentFile().getParentFile() != null) {
                        nodes += "\t";
                    }

                }

            }
            break;

        } // end - while

        // 출력
        for (int i = 0; i < dirNames.size(); i++) {

            System.out.print(nodes);
            System.out.println(dirNames.get(i));
            showTree(dirFiles.get(i));
        }

    } // end - showTree

    // public void tet(File ff) {
    // System.out.println(ff.getParentFile().getParentFile().getName());
    // }

} // end - class


package MakeDos;

import java.io.*;
import java.util.*;

public class Main {

    public static void main(String[] args) {
        
        Functions fcs = new Functions();
        File f = new File("C:\\Temp");
        fcs.showTree(f);
        
    } // end-main

} // end-class










'Computer language > JAVA' 카테고리의 다른 글

JAVA) Thread  (0) 2018.02.20
JAVA) 직렬화  (0) 2018.02.20
JAVA) Map.Entry와 entrySet()  (1) 2018.02.14
JAVA) Stream  (0) 2018.02.14
JAVA) ' .equlas ' 와 ' == ' 의 차이  (0) 2018.02.13
Comments