java - 在 Java 中,将路径的每个部分获取到 Root 的优雅方式

标签 java

有没有更优雅的方式让每一段路径都达到Root 例如给定

E:\AllMusic\The Shadows\The Very Best of The Shadows

我想得到

E:\AllMusic\The Shadows\The Very Best of The Shadows
E:\AllMusic\The Shadows
E:\AllMusic
E:\

我已经用下面的代码完成了(我只是打印出路径,但在实际代码中需要对这些路径做一些事情),但它看起来很复杂。我确实想正确地做到这一点,并注意它必须与 Windows/Unix 等一起工作,所以我不想对字符串进行巧妙的修改。我正在使用 Java 8。

System.out.println(folder);
while(folder.getNameCount()>1)
{
    if(folder.getRoot()!=null)
    {
        folder = folder.getRoot().resolve(folder.subpath(0, folder.getNameCount() - 1));
    }
    System.out.println(folder);
}
if(folder.getRoot()!=null)
{
    System.out.println(folder.getRoot()); 
}

最佳答案

也许是这样的:

Path p = Path.of("E:\\AllMusic\\The Shadows\\The Very Best of The Shadows");
do {
    System.out.println(p);
} while ((p = p.getParent()) != null);

输出:

E:\AllMusic\The Shadows\The Very Best of The Shadows
E:\AllMusic\The Shadows
E:\AllMusic
E:\

关于java - 在 Java 中,将路径的每个部分获取到 Root 的优雅方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57737148/

相关文章:

java - 吗啡处理坏数据

java - 避免由于相同参数类型导致构造函数冲突的最佳实践?

java - 使用BIRT时如何在eclipse中获取csv内容?

java - Java中如何限制Hangman的猜测次数

java - AVL树: solving a StackOverflowError

java - TarantoolConnection16 不是线程安全的

java - 在JAVA中从图像文件夹访问图像

java - 我可以使用 KSoap2 将静态 XML 文件作为请求发送吗

并发

java - 如何使用 JSoup 从网站获取多个表