0

我有下面的代码。我的问题是我想发送零个(或多个)文件,但我不知道该怎么做。Ant 要求您为文件集设置一个基本目录,但是对于这种方法,我不知道那会是什么。如何添加要附加的零个或多个文件的任意列表?

 public void send(File[] files){
        ant.mail (
            from: "IMSBatch@vanguard.com",
            tolist: to,
            message: msg,
            subject : subject,
            mailhost: host,
            messagemimetype: 'text/html'
        ){
            attachments(){
                fileset(dir: ????){
                    include(arbitrary list of files)
                }
            }
        }
    } 

旁注,当我setAttachments()在课堂上的其他地方有一个方法时,我遇到了一个错误,该代码实际上破坏了。我认为 Ant 或 Groovy 的名称与attachmentsAntBuilder 的方法混淆了。

4

1 回答 1

1

像这样怎么样?

@Grab(group='org.apache.ant', module='ant-javamail', version='1.9.4')
@Grab(group='javax.activation', module='activation', version='1.1.1')
@Grab(group='javax.mail', module='mail', version='1.4.7')
@GrabConfig(systemClassLoader=true)

// ...

public void send(File[] files) {
    String filesString = ""
    for (int i = 0; i < files.size(); i++) {
        filesString += f.canonicalPath
        if (files.size() > 1 && i < files.size() -1)
            filesString += ","
    }
    ant.mail(
        from: "IMSBatch@vanguard.com",
        tolist: to,
        message: msg,
        subject: subject,
        mailhost: host,
        messagemimetype: "text/html",
        files: filesString
    )
}

可能有一种 Groovier 的填充方式filesString,我愿意接受改进答案的建议。

于 2015-05-15T01:02:09.783 回答