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はなく、文字列ですFileeachFileRecurse

于 2012-10-18T20:53:45.743 に答える