我想运行一个程序,它将打印该print以控制给定目录的所有文件(名称)。请注意,还应打印任何子目录,并且结构应该与树的任何级别缩进(\ t)。
请参阅附图,了解它应该打印的方式。
我所写的几乎是我需要的输出,但不完全是,你们中的某些人可以帮忙吗?
这就是我所做的:
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);
}}
}
}
答案 0 :(得分:0)
请参阅Walking the File Tree教程。
它包括以下示例以演示文件遍历机制:
对文件树进行Wlaking是一种更容易实现所需目标的方法。