import java.io.File;public class Test6 {
public static void main(String args[]) {
Test6 t = new Test6();
t.traversal("E:/file2"); }
public void traversal(String path) {
File f = new File(path);
if (f.isDirectory()) { // 如果是文件夹,则递归遍历
// 取文件夹下所有文件
File[] array = f.listFiles();
for (int i = 0; i < array.length; i++) {
traversal(array[i].getPath());
}
} else {
// 如果是文件输出文件名,这里可以做删除等操作
System.out.println(f.getName()); }
}}
这个程序怎样修改下可以有层次的输出?多一层加个中划线

解决方案 »

  1.   

    package com.xuz.csdn.june19;import java.io.File;public class FileTree { public static void main(String[] args) {
    File begin = new File("C:/Downloads");
    showTree(0,begin);
    } private static void showTree(int floor, File file) {
    int temp = floor;
    File[] list = file.listFiles();
    for (File f : list) {
    if (f.isFile()) {
    for (int i = 0; i < floor; i++) {
    System.out.print(" ");
    }
    System.out.println("-"+f.getName());
    } else {
    for (int i = 0; i < floor; i++) {
    System.out.print(" ");
    }
    System.out.println("+"+f.getAbsolutePath());
    showTree(++temp, f);
    }
    }
    }}
      

  2.   

    是要做成windows资源管理器那样的效果吗?
      

  3.   

    import java.io.File;
    import java.util.Stack;public class FileTreeTest {
        
        public static void main(String[] args) {
            FileTree tree = new FileTree("D:/green/apache/apache-tomcat-5.5.12/server");
            tree.tree();        
        }
    }class FileTree {
        
        private File root;
        
        public FileTree(File root) {
            this.root = root;
        }
        
        public FileTree(String rootName) {
            this(new File(rootName));
        }
        
        public void tree() {
            Stack<Boolean> lastStack = new Stack<Boolean>();
            tree(root, 0, lastStack);
        }    private void tree(File dir, int level, Stack<Boolean> lastStack) {
            if(dir == null || !dir.exists()) {
                return;
            }
            printFile(dir, level, lastStack);
            
            if(dir.isFile()) {            
                return;
            }
            File[] children = dir.listFiles();
            for(int i = 0; i < children.length; i++) {
                lastStack.push(i == children.length - 1);
                tree(children[i], level + 1, lastStack);
                lastStack.pop();
            }
        }
        
        private void printFile(File file, int level, Stack<Boolean> lastStack) {
            for(int i = 0, k = lastStack.size() - 1; i < k; i++) {
                System.out.print(lastStack.get(i) ? "  " : "│ ");
            }        
            if(level > 0) {            
                System.out.print(lastStack.get(lastStack.size() - 1) ? "└ " : "├ ");
            }
            System.out.println(level == 0 ? file.getPath() : file.getName());        
        }
    }D:\green\apache\apache-tomcat-5.5.12\server
    ├ classes
    ├ lib
    │ ├ catalina-ant-jmx.jar
    │ ├ catalina-ant.jar
    │ ├ catalina-cluster.jar
    │ ├ catalina-optional.jar
    │ ├ catalina-storeconfig.jar
    │ ├ catalina.jar
    │ ├ commons-modeler.jar
    │ ├ servlets-cgi.renametojar
    │ ├ servlets-default.jar
    │ ├ servlets-invoker.jar
    │ ├ servlets-ssi.renametojar
    │ ├ servlets-webdav.jar
    │ ├ tomcat-ajp.jar
    │ ├ tomcat-apr.jar
    │ ├ tomcat-coyote.jar
    │ ├ tomcat-http.jar
    │ └ tomcat-util.jar
    └ webapps
      ├ host-manager
      │ ├ host-manager.xml
      │ ├ images
      │ │ ├ add.gif
      │ │ ├ code.gif
      │ │ ├ design.gif
      │ │ ├ docs.gif
      │ │ ├ fix.gif
      │ │ ├ jakarta-logo.gif
      │ │ ├ tomcat.gif
      │ │ ├ update.gif
      │ │ └ void.gif
      │ ├ manager.xml
      │ └ WEB-INF
      │   ├ lib
      │   │ └ catalina-host-manager.jar
      │   └ web.xml
      └ manager
        ├ html-manager-howto.html
        ├ images
        │ ├ add.gif
        │ ├ code.gif
        │ ├ design.gif
        │ ├ docs.gif
        │ ├ fix.gif
        │ ├ jakarta-logo.gif
        │ ├ tomcat.gif
        │ ├ update.gif
        │ └ void.gif
        ├ manager-howto.html
        ├ manager.xml
        ├ status.xsd
        ├ WEB-INF
        │ ├ lib
        │ │ ├ catalina-manager.jar
        │ │ └ commons-fileupload-1.0.jar
        │ └ web.xml
        └ xform.xsl