Java-如何获得起始目录下特定级别的所有文件位置的路径?

Java-如何获得起始目录下特定级别的所有文件位置的路径?,java,Java,这个问题与我最近提出的一个问题有关,当时我需要做一些非常类似的事情。我试着编写一个程序,获取目录中特定级别内所有文件的文件路径,并将它们写入文本文件。例如,在指定的起始目录下5个级别。那个程序正是我所需要的。它获取5级子目录(包括起始目录)中所有内容的文件路径,并将它们写入文本文件。这是我的密码: public class ScanFolder { private static final int LEVELS = 5; private static final String START_D

这个问题与我最近提出的一个问题有关,当时我需要做一些非常类似的事情。我试着编写一个程序,获取目录中特定级别内所有文件的文件路径,并将它们写入文本文件。例如,在指定的起始目录下5个级别。那个程序正是我所需要的。它获取5级子目录(包括起始目录)中所有内容的文件路径,并将它们写入文本文件。这是我的密码:

public class ScanFolder {

private static final int LEVELS = 5;

private static final String START_DIR = "C:/Users/Joe/Desktop/Test-Level1/";
private static final String REPORT_FILE = "C:/Users/Joe/Desktop/reports.txt";

public static void main(String[] args) throws IOException {
    try (PrintWriter writer = new PrintWriter(REPORT_FILE, "UTF-8");
            Stream<Path> pathStream = Files.walk(Paths.get(START_DIR), LEVELS)) {

         pathStream.filter(Files::isRegularFile).forEach(writer::println);

       } catch (Exception e) {
         e.printStackTrace(System.err);
       }
     }
   }
公共类扫描文件夹{
私有静态最终整数级别=5;
私有静态最终字符串START_DIR=“C:/Users/Joe/Desktop/Test-Level1/”;
私有静态最终字符串报告\u FILE=“C:/Users/Joe/Desktop/reports.txt”;
公共静态void main(字符串[]args)引发IOException{
try(PrintWriter=新的PrintWriter(报告文件“UTF-8”);
Stream pathStream=Files.walk(path.get(START\u DIR),LEVELS)){
filter(Files::isRegularFile).forEach(writer::println);
}捕获(例外e){
e、 printStackTrace(System.err);
}
}
}
今天我意识到,对于我正在试验的想法,我还需要一个程序,可以获取特定级别子目录中所有文件夹的文件路径,并将它们写入文本文件。除了文件夹路径之外,我不想将任何内容写入文本文件(没有.txts或任何类似的内容)。因此,它不给我起始目录中所有内容的文件路径,也不给我第五级子目录中所有内容的文件路径(起始目录当然是第一级),而是给我从第一级向下五级的所有文件夹的路径,中间没有任何内容


提前谢谢你的帮助。我对java不是很有经验,而且我经常在黑暗中摸索,所以非常感谢您的帮助。我不想/无意过分依赖这个论坛的帮助,但我经常不知道自己在做什么,需要一些指导。

你试过文件:isDirectory筛选器吗?@mbmast谢谢,我不知道。这应该得到它的一部分,但我如何才能使它只写特定级别的目录,例如5?检查这个问题:。给出一个递归调用的示例。在调用之前和之后,可以添加一个静态int,在调用/返回时分别递增/递减。这将告诉您在目录中的级别。您是否尝试过文件:isDirectory筛选器?@mbmast谢谢,我不知道。这应该得到它的一部分,但我如何才能使它只写特定级别的目录,例如5?检查这个问题:。给出一个递归调用的示例。在调用之前和之后,可以添加一个静态int,在调用/返回时分别递增/递减。这将告诉您在目录中的级别。