2012-11-19 54 views

回答

1

我认为像这样

File file=new File("/sdcard/domedir"); 
File[] list = file.listFiles(); 
int count = 0; 
for (File f: list){ 
    String name = f.getName(); 
    if (name.endsWith(".jpg") || name.endsWith(".mp3") || name.endsWith(".some media extention")) 
     count++; 
} 
0

也许你应该写这样一个简单的递归方法:

public int countFile(String path) { 
    int count = 0; 
    File f = new File(path); 
    if (f.exists() && f.isDirectory()) { 

     for (File fi : f.listFiles()) { 
      if (fi.isDirectory()) 
       count += countFile(fi.getAbsolutePath()); 
      else 
       count++; 
     } 
    } 
    return count; 
} 
0

那么你可以简单地检查文件的类型是否与普通的媒体类型

 static class MyDocFileFilter implements FileFilter{ 
      private final String[] myDocumentExtensions 
        = new String[] {".java", ".png", ".avi", ".mkv"}; 

      public boolean accept(File file) { 

        if (!file.isFile()) return false; 

        for (String extension : myDocumentExtensions) { 
         if (file.getName().toLowerCase().endsWith(extension)) 
            return true; 
      } 
      return false; 
    } 
} 

然后使用File列出所有需要的文件,使用filt呃。并相应地更改扩展名

File file = new File("DIRECTORY_NAME"); 
File[] fileslist = file.listFiles(new MyMediaFileFilter()); 
相关问题