假设有如下目录结构:
/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)