如何在Java中以相反的顺序打印文件路径



我想按相反的顺序打印文件/文件夹的相对路径。

IPath projectRelativePath = element.getProjectRelativePath();

结果是";src/abc/foldername";。

但我想要相反的结果,即foldername/abc/src。

有人能帮我吗?是否有可用于此的JAVA API?

我相信您可以通过将路径拆分为/"然后以相反的顺序连接令牌。

下面是一个代码片段:

Path path = Path.of("this/that/folder");
List<String> tokens = Arrays.stream(path.toString().split("/")).toList();
StringBuilder newPath = new StringBuilder();
for(int i = tokens.size() - 1; i >= 0; i--){
newPath.append(tokens.get(i));
newPath.append("/");
}
System.out.println(newPath.toString());

Path组件中的Stream可以用于反转相对路径的组件,还可以使用适当的文件分隔符处理任何平台:

Stream.iterate(Path.of("src/abc/foldername"), Path::getParent)
.takeWhile(Objects::nonNull)
.map(Path::getFileName).map(Path::toString)
.collect(Collectors.joining(File.separator));
==> "foldername/abc/src"  (or foldernameabcsrc on Windows)

最新更新