【发布时间】:2015-12-02 22:16:37
【问题描述】:
我真的被这个错误困住了。这对我来说没有任何意义。为什么使用参数类型 UnixPath, null ?我尝试打印 tempDir 变量,它与预期的一样 - e.i.具有正确路径的路径对象。
有什么想法吗?
没有方法签名:build_76p6jmah0vklon2l29au5dqlcr$_copyRecursively_closure3.doCall() 适用于参数类型:(sun.nio.fs.UnixPath, null) 值:[generic/bundle, ...] 可能的解决方案:doCall()、doCall(java.lang.Object)、findAll()、findAll()
readFile(args[Property.CONFIG_FILE.propertyName]).eachLine {
if (new File(it).isDirectory()) {
copyRecursively(Paths.get(it), tempDir)
} else {
println "File $it is not a directory. Skipping."
}
}
void copyRecursively(Path sourceDir, Path destinationDir) {
Files.walkFileTree(sourceDir, [FileVisitOption.FOLLOW_LINKS] as Set, Integer.MAX_VALUE, [
postVisitDirectory: { return FileVisitResult.CONTINUE },
preVisitDirectory: {filePath, attrs ->
Path newDirectory = destinationDir.resolve(sourceDir.relativize(filePath));
Files.copy(filePath, newDirectory, StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING)
return FileVisitResult.CONTINUE;
},
visitFile: { filePath, attrs ->
Files.copy(filePath, destinationDir.resolve(sourceDir.relativize(filePath)), StandardCopyOption.COPY_ATTRIBUTES, StandardCopyOption.REPLACE_EXISTING);
return FileVisitResult.CONTINUE;
},
visitFileFailed: { return FileVisitResult.CONTINUE }
] as java.nio.file.FileVisitor)
}
【问题讨论】:
-
copyRecursively方法是否定义在同一个作用域/脚本中? -
是的。我也有其他方法,就像这个一样,它们也有效