ルートまでのパスの各セクションを取得するためのJavaでエレガントな方法

ポール・テイラー:

与えられたEGルートまでのパスの各セクションを得るために、よりエレガントな方法はあります

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:\

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=333038&siteId=1