続きを書くのが面倒くさくなっていました。
みけです。
今回も
java.nio.file.Path
のメソッドを見ていきたいと思います。iterator()
そのパスに含まれるパスを返してくれるのかとおもいきや、
トップパスからのパスをiteratorにして返してくれます。
かつ、ちょっと面白いことが発生します。
groovy:000> home = System.env['HOMEPATH']
===> \Users\mike
groovy:000> dir = new File(home)
===> \Users\mike
groovy:000> path = dir.toPath()
===> \Users\mike
groovy:000> path.iterator().each { println "$it -> ${it.toAbsolutePath()}" }
Users -> C:\Users\mike\Users
mike -> C:\Users\mike\mike
===> sun.nio.fs.AbstractPath$1@44eeef95
親パスになっていると思ったら、
子パスになっている(´・ω・`)
このメソッドを使う場合は気をつけないといけませんね。
relativize(java.nio.filePath)
これは結構便利だと思いました。
あるパスから別のパスへ相対パス化してくれます。
groovy:000> ghome = System.env['GROOVY_HOME']
===> C:\Groovy\1.8.6
groovy:000> jhome = System.env['JAVA_HOME']
===> C:\Program Files\Java\jdk1.7.0_02
groovy:000> gPath = new File(ghome).toPath()
===> C:\Groovy\1.8.6
groovy:000> jPath = new File(jhome).toPath()
===> C:\Program Files\Java\jdk1.7.0_02
groovy:000> jPath.relativize(gPath)
===> ..\..\..\Groovy\1.8.6
register(WatchService, WatchEvent.Kind<?>)
一番面白そうな感じのするメソッドなのですが、
調べ上げられていません。
また、いずれの機会にか…
0 件のコメント:
コメントを投稿