按特定顺序打印文件名,文件夹和子文件夹

时间:2014-08-11 19:01:40

标签: java file printing console directory

我想运行一个程序,它将打印该print以控制给定目录的所有文件(名称)。请注意,还应打印任何子目录,并且结构应该与树的任何级别缩进(\ t)。

请参阅附图,了解它应该打印的方式。

attachment

我所写的几乎是我需要的输出,但不完全是,你们中的某些人可以帮忙吗?

这就是我所做的:

import java.io.File;

public class Main {


    public static void main(String[] args) {
    String root = "C:\\CE";//root directory , change directory name to which one you like
    String tab="\t";
    String n="";
    int d=0;
    printFilesAndDirectoriesNames(root,tab,n,d);
}

public static void printFilesAndDirectoriesNames(String root,String t,String n,int d) {
    int directoryAgain=0;
    int temp=0;
    String tab=t;
    String name=n;  
    File folder = new File(root);
    File[] listOfFiles = folder.listFiles();
//run over all folder+ subfolders by calling this function over and over again
        for (int i = 0; i < listOfFiles.length; i++) 
        {
            //is file
          if (listOfFiles[i].isFile()) 
          {
              //if temp == 0 folder nameis being printed
              if(temp==0)
                {
                 if(name==""){
                 System.out.println(folder.getName()+ " [Directory]");
                 temp++;
                 name=folder.getName();

                 }
                 else if(name!=folder.getName()&&name!="") {

                     System.out.println(tab+folder.getName()+ " [Directory]");
                     tab=tab+"\t";
                     temp++;
                     name=folder.getName();
                }
                 }
            System.out.println(tab + listOfFiles[i].getName());
          }
          //is directory
          else if (listOfFiles[i].isDirectory()) {
              directoryAgain++;
              printFilesAndDirectoriesNames(root+"\\"+listOfFiles[i].getName(),tab,name,directoryAgain);

          }}

    }
}

1 个答案:

答案 0 :(得分:0)

请参阅Walking the File Tree教程。

它包括以下示例以演示文件遍历机制:

  • 查找 - 递归文件树,查找与特定glob模式匹配的文件和目录。 “查找文件”中讨论了此示例。
  • Chmod - 递归更改文件树的权限(仅适用于POSIX系统)。
  • 复制 - 递归复制文件树。
  • WatchDir - 演示监视目录以查找已创建,删除或修改的文件的机制。使用-r选项调用此程序会监视整个树以进行更改。有关文件通知服务的详细信息,请参阅“查看目录以进行更改”。

对文件树进行Wlaking是一种更容易实现所需目标的方法。

相关问题