输入某个文件夹名称,打印出这个文件夹下的文件目录树
c:\a
   |---1.txt
   |---2.txt
   |---abc
        |---a.txt
        |---b.txt
        |---xyz
             |---start.txt
   |---t.txt
   |---我的目录
        |---这个貌似要用递归算法啊   可是不会啊   麻烦各位讲讲   或者给我个代码   让我参考一下  谢谢了

解决方案 »

  1.   


    import java.io.File;
    import java.io.FileFilter;public class MyFileTree { public static void main(String[] args) {  MyFileTree tree = new MyFileTree();
      tree.printFile(new File("c:/windows/system32"), 0); } 
     public void printFile(File f, int indent) {  if (f.isFile()) {
       for (int i = 0; i < indent; i++) {
        System.out.print("    ");
       }
       System.out.print(f.getName());
       System.out.println();
      } else if (f.isDirectory()) {
       for (int i = 0; i < indent; i++) {
        System.out.print("    ");
       }
       System.out.print("[" + f.getName() + "]");
       System.out.println();   File[] listFiles = f.listFiles(new FileFilter() {
        public boolean accept(File f) {
         if (f.isDirectory())
          return true;
         if (f.getName().length() > 4
           && f.getName().substring(f.getName().length() - 4)
             .equalsIgnoreCase(".dll")) {
          return true;
         }
         return false;
        }
       });
       for (int i = 0; i < listFiles.length; i++) {
        printFile(listFiles[i], indent + 1);
       }  } else {
       System.out.println("ERROR!");
      } }}
      

  2.   

    File f = new File(path);
    Files[] files = f.listFiles();
    for(int i = 0, l = files.length; i < l; i++){
        File f1 = files[i];
    }
      

  3.   

    二楼  那个我没学过filetree啊
      

  4.   

    不是  打错了  是FileFilter
      

  5.   


    //FileFilter是一个对文件的过滤器,你这里不用过滤,直接删了这段就行
    import java.io.File;
    import java.io.FileFilter;public class MyFileTree { public static void main(String[] args) {  MyFileTree tree = new MyFileTree();
      tree.printFile(new File("c:/windows/system32"), 0); } 
     public void printFile(File f, int indent) {  if (f.isFile()) {
       for (int i = 0; i < indent; i++) {
        System.out.print("    ");
       }
       System.out.print(f.getName());
       System.out.println();
      } else if (f.isDirectory()) {
       for (int i = 0; i < indent; i++) {
        System.out.print("    ");
       }
       System.out.print("[" + f.getName() + "]");
       System.out.println();   File[] listFiles = f.listFiles();
       for (int i = 0; i < listFiles.length; i++) {
        printFile(listFiles[i], indent + 1);
       }  } else {
       System.out.println("ERROR!");
      } }}