2015-08-21 21 views
0

我有一個名稱爲D0000025667-T04292.pdf, D0000025668-T02119.pdf, D0000025670-T01125.pdf等文件的文件夾。如何在java中搜索文件名和attch郵件

我有一個MS Access數據庫表,用值如下:

**Dealer Code  Email** 
T04292   [email protected] 
T04292   [email protected] 
T02119   [email protected] 
T01125   [email protected] 
RS0009   [email protected] 
RS0001   [email protected] 
C01020   [email protected] 

我需要從表中「對於經銷商」代碼和文件夾進行搜索。最後,我需要將匹配的文件附加到電子郵件以發送到數據庫中列出的地址,例如經銷商代碼T04292匹配文件D0000025667-T04292.pdf需要發送到[email protected]

我有一個郵件功能,我可以直接指定附件文件路徑,但現在我需要搜索並匹配需要附加的文件。

回答

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; 
} 
+0

這是完整的代碼。只需調用findDealerPDFs(「目錄」,「經銷商」);從你的程序。並取消評論的兩條評論。發佈你在評論或聊天中得到的內容。 –

+0

然後您沒有將任何經銷商值傳遞給findDealerPDFs()調用。你需要這樣打電話:findDealerPDFs(「/ blah/dibla/directory」,「T04292」); –

+0

現在我正在做這個我從DB獲取代碼並將其傳遞給findDealerPDFs()調用.. – User9999