2012-01-09 100 views

回答

7

如果你想使用一個庫,嘗試從阿帕奇公地listFiles方法IO FileUtils,這將遞歸到你的目錄。

這裏是你如何可以把它找到指定的起始目錄下的任何地方命名的任何目錄*.dat*.txt所有文件的例子:

Collection<File> files = FileUtils.listFiles(new File("my/dir/path"), {"dat", "txt"}, true); 
+0

+1使用庫 – 2012-01-09 13:34:39

1

遞歸通過目錄結構,收集所有不是子目錄的文件的名稱。

1

您在找File.list()瞭解更多詳情,請仔細閱讀javadoc。

3
public static void walkin(File dir) { 
       String pattern = "file pattern"; //for example ".java" 

       File listFile[] = dir.listFiles(); 
       if(listFile != null) { 
         for(int i=0; i<listFile.length; i++) { 
           if(listFile[i].isDirectory()) { 
             walkin(listFile[i]); 
           } else { 
             if(listFile[i].getName().endsWith(pattern)) 
             { 
               System.out.println(listFile[i].getPath()); 
             } 
           } 
         } 
       } 
     } 
+0

感謝它也在工作 – itro 2012-01-10 07:38:21

1

使用Java列出目錄做類似這樣

東西
File dir = new File(fname); 
String[] list = dir.list(); 

if(list == null){ 
    System.out.println("Specified directory does not exist or is not a directory."); 
    System.exit(0); 
}else{ 
    //list the directory content 
    for(int i = 0; i < chld.length; i++){ 
    String fileName = list[i]; 
    System.out.println(fileName); 
} 

大部分代碼來自這裏,http://www.roseindia.net/java/beginners/DirectoryListing.shtml

+0

感謝它的工作 – itro 2012-01-10 08:04:21

0

使用Apache Commons

String filePath = "/apps/fraud"; 
String[] acceptedExtension = {"ctl","otl","dat","csv","xls"}; 
String[] acceptedFolders = {"suresh","dir","kernel"}; 

Collection fileList = FileUtils.listFiles(
       new File(filePath), 
       new SuffixFileFilter(acceptedExtension) , 
       new NameFileFilter(acceptedFolders) 
       ); 
相關問題