通过具有自定义名称的Groovy脚本复制文件或文件夹

通过具有自定义名称的Groovy脚本复制文件或文件夹,groovy,soapui,Groovy,Soapui,我试图在我的SoapUI项目中实现一个groovy脚本,该脚本将在执行请求后复制某些文件。我检查了其他主题,并设法使用以下脚本之一: class FileExample { static void main(String[] args) { def src = new File('C:/Users/USERNAME/Desktop/Results/Test_Result.xml') def dst = new File('C:/Users/USERNAME/Desk

我试图在我的SoapUI项目中实现一个groovy脚本,该脚本将在执行请求后复制某些文件。我检查了其他主题,并设法使用以下脚本之一:

class FileExample {
   static void main(String[] args) {
      def src = new File('C:/Users/USERNAME/Desktop/Results/Test_Result.xml')
      def dst = new File('C:/Users/USERNAME/Desktop/Groovy Scripts/Copied File/Test_Result.xml')
      dst << src.bytes
   }
} 
但它不起作用

你能告诉我另一种方法,我可以用它指出我要复制的自定义文件吗

亲切问候,


Kristiyan

如果您只需要一个文件

def src = new File('C:/Users/USERNAME/Desktop/Results').listFiles().find{it.name.endsWith('.zipx')}
您可以使用
每个文件
遍历
,或

新文件('C:/Users/USERNAME/Desktop/Results')。每个文件{src->
if(src.name.endsWith('.zipx')){
def dst=新文件(“…/Copied File/”,src.name)

src.withInputStream{stream->dst谢谢!非常好用:)还可以告诉我,你是否知道如何使用扩展名之前的关键字定义文件。我尝试过类似于
if(src.name.endsWith('%Value%.zipx')的方法
但它不起作用。很抱歉,如果这个问题有点愚蠢,但我是这方面的新手,对所有定义方法都不太熟练:/Kind,KristiyanI也尝试过使用
if(src.name.eachFileMatch(~/.zipx/)的方法
但再次收到一个错误作为响应…也许我没有正确定义它。我的目标是复制扩展名之前名称中包含特定值的每个文件。
如果(src.name~=/.*SomeKey.\.xzip/)
其中
/.*SomeKey.*\.xzip/
是一个常规表达式我尝试过这样:
.eachFile>{src->if(src.name~=/.*SomeKey.\.zipx/)
但我仍然得到一个错误:(第17列)if(src.name~=/.*Pack.*.\.zipx/)^org.codehaus.groovy.syntax.syntaxexException:expecting'),找到了“~”@第2行。也许我没有正确定义它……对不起,这应该是
name=~/.
def src = new File('C:/Users/USERNAME/Desktop/Results').listFiles().find{it.name.endsWith('.zipx')}
new File('C:/Users/USERNAME/Desktop/Results').eachFile{src->
    if(src.name.endsWith('.zipx')){
        def dst = new File('.../Copied File/', src.name)
        src.withInputStream{stream-> dst << stream }
    }
}