次のディレクトリ構造があるとします。
/home/some/random/foler/myScript.grooy
...スクリプト自体で myScript.grooy 親ディレクトリへのパスをプログラムで取得するにはどうすればよいですか?
最終的に、スクリプトがある同じディレクトリからいくつかのファイルを読み込もうとしています。
編集: Windows 7、Groovy 2.0.1、groovy コンソールで実行しようとしています
次のディレクトリ構造があるとします。
/home/some/random/foler/myScript.grooy
...スクリプト自体で myScript.grooy 親ディレクトリへのパスをプログラムで取得するにはどうすればよいですか?
最終的に、スクリプトがある同じディレクトリからいくつかのファイルを読み込もうとしています。
編集: Windows 7、Groovy 2.0.1、groovy コンソールで実行しようとしています
さて、解決策は Java の File クラスにあります。
println new File(".").absolutePath
同じディレクトリにあるすべての groovy スクリプトを取得したい場合は、次のような Groovy JDK の他の機能を使用できますeachFile
。
def files = []
new File(".").eachFile {
if (it.name.endsWith(".groovy") ) files << it
}
println files
実行中のスクリプト名が必要な場合は、問題があります ( https://issues.apache.org/jira/browse/GROOVY-1642 )
その JIRA によると、これが現在の回避策です (常に機能するとは限りません)。
URL scriptUrl = getClass().classLoader.resourceLoader
.loadGroovySource(getClass().name)