java读取文件夹中的所有文件以便在电子邮件中附加

时间:2017-09-22 19:43:53

标签: java javamail

我有javax实用程序发送带附件的电子邮件,对于附件我必须提到要在电子邮件中发送的确切文件路径,就像我在文件夹中有10个文件然后我必须指向由\\分隔的10个确切路径然后我将能够发送电子邮件,我的要求是我只想指出一个文件包含的开始或结束字符串,程序应该选择包含提到的字符串和附件的文件夹中的所有文件到电子邮件。例如,有两个文件在文件夹名称"xyz_100.pdf""abc_100.pdf"所以在这种情况下我想决定附件的路径,如 100 .pdf和电子邮件程序应该选择这两个文件,下面是我当前的代码考虑附件

if (null != Attachments) {
                    int StartIndex = 0, PosIndex = 0;
                    while (-1 != (PosIndex = Attachments.indexOf("///", StartIndex))) {
                        // Create and fill other message parts;
                        MimeBodyPart mbp = new MimeBodyPart();
                        FileDataSource fds = new FileDataSource(Attachments.substring(StartIndex, PosIndex));
                        mbp.setDataHandler(new DataHandler(fds));
                        mbp.setFileName(fds.getName());
                        mp.addBodyPart(mbp);
                        PosIndex += 3;
                        StartIndex = PosIndex;
                    }
                    // Last, or only, attachment file
                    if (StartIndex < Attachments.length()) {
                        MimeBodyPart mbp = new MimeBodyPart();
                        FileDataSource fds = new FileDataSource(Attachments.substring(StartIndex));
                        mbp.setDataHandler(new DataHandler(fds));
                        mbp.setFileName(fds.getName());
                        mp.addBodyPart(mbp);
                    }
                }

虽然附件是文件夹

中文件的确切路径

由于

1 个答案:

答案 0 :(得分:1)

Java中有很多方法可以扫描目录以发现所有文件,并将文件与模式或基本字符串进行匹配。一个简单的起点是java.io.File list method(及相关方法)。

一旦你有了一个文件名或File对象数组,就可以遍历那个数组并将每个数组作为附件添加:

for (file : files) {
    MimeBodyPart mbp = new MimeBodyPart();
    mbp.attachFile(file);
    mp.addBodyPart(mbp);
}