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 回答