我想按相反的顺序打印文件/文件夹的相对路径。
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)