首页 > 解决方案 > 如何使用 Java 8 在 Spring Boot 中获取目录(不是文件)的完整系统路径

问题描述

我正在使用 Java 8 在 Spring Boot 1.5 中进行编码,我在此路径上有一个目录:

  C:\Users\me\IdeaProjects\MyApp\server\src\main\resources\static\documents\1\folder_a23

我不知道如何使用 Java 函数将此路径作为字符串/文件/路径/流。有没有办法通过搜索“/folder_a23”来获得这条路径?非常感谢您的每一个回答!

标签: javaspring-bootjava-8directory

解决方案


文件对象处理您可以对文件系统上的文件执行的所有操作。即使名称没有正确暗示它,File对象也是文件或目录路径名的抽象表示。

看看#getAbsolutePath()

File file = new File(".....");
String absolutePath = file.getAbsolutePath();

这为您提供了文件的绝对路径。

如果您用于创建 File 对象的 String 指向一个目录,您可以使用以下命令获取该目录的内容.listFiles();

这允许您遍历目录的内容并执行所需的检查。

file = new File("c:/test");
File[] paths = f.listFiles();
for(File path: paths) {
    // perform your checks here
}

这个函数本质上不是递归的。如果你想进入子目录,你需要自己编写代码。

但是,这假设您确实在处理文件。如果您将程序捆绑为 .jar(或 .war)文件并从那里运行它,它们将不会是文件系统上的文件,因为 .jar 是压缩的 java 档案。


推荐阅读