Java- 递归获取包含文件的目录路径
Java- Recursively Get the path of directorys with files on it
如何递归获取文件所在目录的路径?
我正在编写一个程序,需要递归地获取所有包含 JAVA 个文件的目录的路径,例如:
| |-->Foo2 --> lore.java
|Foo|
| |-->Foo3 --> Foo4 --> ipsum.java
在这个例子中,我想保存在一个列表中:FOO/FOO2 和 FOO/FOO3/FOO4。可能有更多的嵌套目录,这些目录可能包含 java 个文件,例如:
|
| |--> Foo2 --> lore.java
| |
|Foo| | --> ipsum.java
| |--> Foo3 |
| | | --> Foo4 --> rosae.java
在这个例子中,我想保存 FOO/FOO2、FOO/FOO3 和 FOO/FOO3/FOO4。
有任何想法吗?谢谢!
看看以下内容是否适合您:
public static void main(String[] args) {
List<Path> listOfDirectoryPaths = new ArrayList<>();
try (Stream<Path> walk = Files.walk(Paths.get("."))) {
walk.forEach(path -> {
if(path.toFile().isFile() && path.toFile().getName().contains(".java")) {
listOfDirectoryPaths.add(path.getParent());
}
});
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(listOfDirectoryPaths.stream().distinct().collect(Collectors.toList()));
}
}
这将遍历您 运行 它所在的当前目录 (.)。
它将查找包含“.java”的文件
它将存储目录的路径。
最后,它将 return 只有不同的路径,所以你不会得到重复的。
尝试一下,然后根据需要进行修改。
如何递归获取文件所在目录的路径?
我正在编写一个程序,需要递归地获取所有包含 JAVA 个文件的目录的路径,例如:
| |-->Foo2 --> lore.java
|Foo|
| |-->Foo3 --> Foo4 --> ipsum.java
在这个例子中,我想保存在一个列表中:FOO/FOO2 和 FOO/FOO3/FOO4。可能有更多的嵌套目录,这些目录可能包含 java 个文件,例如:
|
| |--> Foo2 --> lore.java
| |
|Foo| | --> ipsum.java
| |--> Foo3 |
| | | --> Foo4 --> rosae.java
在这个例子中,我想保存 FOO/FOO2、FOO/FOO3 和 FOO/FOO3/FOO4。 有任何想法吗?谢谢!
看看以下内容是否适合您:
public static void main(String[] args) {
List<Path> listOfDirectoryPaths = new ArrayList<>();
try (Stream<Path> walk = Files.walk(Paths.get("."))) {
walk.forEach(path -> {
if(path.toFile().isFile() && path.toFile().getName().contains(".java")) {
listOfDirectoryPaths.add(path.getParent());
}
});
} catch (IOException e) {
e.printStackTrace();
}
System.out.println(listOfDirectoryPaths.stream().distinct().collect(Collectors.toList()));
}
}
这将遍历您 运行 它所在的当前目录 (.)。 它将查找包含“.java”的文件 它将存储目录的路径。 最后,它将 return 只有不同的路径,所以你不会得到重复的。
尝试一下,然后根据需要进行修改。