私はjava.io.Fileを持っています、例えば
/foo/bar/baz
この場合、ファイルの「トップ」の親を取得したい
/foo/
明らかに、これは Linux 固有のものです。ソリューションがクロスプラットフォーム互換であることは気にしませんが、そうであれば、よりエレガントです!
Scalaで思いついた最高のものは次のとおりです。
def topParent( file : File ) : File =
{
var temp = file
while ( temp.getParent != "/" ) temp = temp.getParentFile
temp
}
次の動作があります。
scala> topParent( new java.io.File( "/foo/bar/baz" ) )
res14: java.io.File = /foo
しかし、それは少しエレガントではないようです。誰かがより良い解決策を持っていますか?