2012-11-02 19 views
1

我想知道是否有任何特定的方法來過濾文件名稱,並根據其前綴將特定文件單獨添加到文件數組?在java中有一種方法可以根據文件名從一個文件夾中分組特定類型的文件並單獨添加它們嗎?

例如: 文件:A_error_log.txt,A.TXT,A.fasta,B.fasta,B_error_log.txt 從上面的文件列表,我只是想在A類型的文件移動到文件夾和B型文件到另一個文件夾。

一個標準的解決方案是,獲取文件列表,然後使用get name檢查它們是否存在特定的文件名前綴並添加它們。

我想知道有沒有其他方法已經存在4r這?

回答

0

如果你能容忍一個額外的外部依賴Apache Commons IO的一個FileFilter包有多個預製的過濾器對這種操作的,你想要的是容易做WildcardFileFilter

File dir = new File("."); 
FileFilter fileFilter = new WildcardFileFilter("A*"); 
File[] files = dir.listFiles(fileFilter); 
for (int i = 0; i < files.length; i++) { 
    System.out.println(files[i]); 
} 

還有很多其他的過濾器,以及一組「邏輯」過濾器(AndFileFilter,OrFileFilter和NotFileFilter),允許您將多個過濾器串在一起。

如果您決定使用Commons IO,在FileUtils包中有許多非常有趣的方法來移動文件,這也處理文件必須移動到另一個文件系統的情況。

相關問題