5

次のディレクトリ構造があるとします。

/home/some/random/foler/myScript.grooy

...スクリプト自体で myScript.grooy 親ディレクトリへのパスをプログラムで取得するにはどうすればよいですか?

最終的に、スクリプトがある同じディレクトリからいくつかのファイルを読み込もうとしています。

編集: Windows 7、Groovy 2.0.1、groovy コンソールで実行しようとしています

4

1 に答える 1

15

さて、解決策は 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)
于 2012-08-14T18:28:35.200 に答える