1

我在 Groovy 脚本中编写了一个闭包来复制文件,然后将该闭包传递给 eachFileMatch(regex,closure) 以复制与给定正则表达式匹配的所有文件。当我在 Groovy 控制台中对其进行原型设计时,一切正常,但现在当我在 Eclipse 中运行它时,出现以下错误:

groovy.lang.MissingMethodException: No signature of method: java.lang.String.eachFileMatch() is applicable for argument types: (java.util.regex.Pattern, file_copy$_run_closure3)

这是闭包和对 eachFileMatch() 的调用

def fileCopyClosure = {

if(it.canRead()){
    def destFolder = new File("${outputDirectory}")
    if(!destFolder.exists()){
        println "Creating directory"
        destFolder.mkdir()
    }


    def desti = new File("${outputDirectory}\\${it.name}")
    output = desti.newOutputStream()
    it.eachByte(1024, write)
    output.close()

}
}
sourceDir.eachFileMatch(regex, fileCopyClosure)
4

2 回答 2

1

尝试new File(sourceDir).eachFileMatch(regex, fileCopyClosure)

于 2012-10-18T20:58:49.683 回答
0

从异常中,sourceDir是一个字符串,而不是File你需要的eachFileRecurse

于 2012-10-18T20:53:45.743 回答