如何在java中搜索文件名和附加邮件

时间:2015-08-21 09:22:33

标签: java javamail pdfbox

我有一个名为D0000025667-T04292.pdf, D0000025668-T02119.pdf, D0000025670-T01125.pdf等文件的文件夹。

我有一个MS访问数据库表,其值如下:

**Dealer Code        Email**
T04292            a@gmail.com
T04292            a@gmail.com
T02119            b@gmail.com
T01125            b@gmail.com
RS0009            c@gmail.com
RS0001            c@gmail.com
C01020            d@gmail.com

我需要得到经销商'表中的代码和搜索文件夹。最后,我需要将匹配的文件附加到电子邮件中,以发送到数据库中列出的地址,例如经销商代码T04292匹配需要发送到D0000025667-T04292.pdf的文件a@gmail.com

我有一个邮件功能,我可以直接指定附加文件路径,但现在我需要搜索和匹配需要附加的文件。

1 个答案:

答案 0 :(得分:2)

我正在回答一个问题,合并的问题没有用(此外,在其他答案中已经解释了将文件附加到邮件中,例如here)。所以这里是如何找到匹配的文件:

class DealerFilter implements FilenameFilter
{
    private final String dealer;

    DealerFilter(String dealer)
    {
        this.dealer = dealer;
    }

    @Override
    public boolean accept(File dir, String name)
    {
        // uncomment these lines for debugging:
        //System.out.println ("dealer: " + dealer);
        //System.out.println ("name:   " + name);
        //System.out.println ("dir:    " + dir);

        return name.toLowerCase().endsWith("-" + dealer.toLowerCase() + ".pdf");
    }
}

// returns null if error, empty array if not found
File[] findDealerPDFs(String directory, String dealer)
{
    File dir = new File(directory);

    File[] files = dir.listFiles(new DealerFilter(dealer));
    if (files == null)
    {
        // error
        return null;
    }
    for (File f : files)
    {
        System.out.println(f);
    }
    return files;
}