有没有更优雅的方式让每一段路径都达到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/