文件夹详细信息和文件夹信息中的文件使用Java

文件夹详细信息和文件夹信息中的文件使用Java,java,file,Java,File,我有一个文件夹结构,如:E:\Test。在它里面我有很多子文件夹,比如FolderA、FolderB、FolderC等等 我想有一个java程序,它将列出所有子文件夹和子文件夹中的报告文件。我怎样才能做到这一点?使用下面的代码片段,我可以访问E:\Test目录中的不同文件夹,但子文件夹中的文件不会出现 public static void main(String args[]){ File directoryPath = new File("E:\\Test\\")

我有一个文件夹结构,如:E:\Test。在它里面我有很多子文件夹,比如FolderA、FolderB、FolderC等等

我想有一个java程序,它将列出所有子文件夹和子文件夹中的报告文件。我怎样才能做到这一点?使用下面的代码片段,我可以访问E:\Test目录中的不同文件夹,但子文件夹中的文件不会出现

 public static void main(String args[]){
    File directoryPath = new File("E:\\Test\\");

    File folderPath [] = directoryPath.listFiles(); 
    System.out.println("List of files and folders in the directory :  ");
    for(File file : folderPath){
        System.out.println("Folder Name Is : " +file.getAbsolutePath());
        System.out.println("Files under the folderpath are : " +file.listFiles());
        System.out.println(" " );
    }
    
}

您需要使用递归。编写一个方法(比如说
listContent(File)
)来打印目录的内容。每当一个目录中的一个文件本身就是一个目录时,它就会再次调用自己。使用递归并将文件夹传递给该方法,直到得到一个文件。关于
java.nio
和?
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import java.nio.file.Path;

public class Main {

    private static final StringBuilder tabs = new StringBuilder();

    public static void main(String[] args) {
        try {
            Path start = new File("E:\\Test\\").toPath();
            System.out.println("List of files and folders in the directory " + start.getFileName() + ": ");
            Files.walk(start).forEach(Main::printInfo);
        } catch (IOException ignore) {
        }
    }

    public static void printInfo(Path path) {
        String tabs = Main.tabs.toString();
        if (Files.isDirectory(path)) {
            System.out.println(tabs + "Folder Name Is : " + path.getFileName());
            System.out.println(tabs + "Files under the " + path.toString() + ": ");
            Main.tabs.append("\t");
        } else {
            System.out.println(tabs + path.getFileName());
        }
    }
}