2012-05-04 42 views

回答

6

不,不是内置的。但是,您可以创建一个爬虫程序,扫描整个硬盘驱动器以查找具有特定扩展名(或更好的MIME类型)的文件。

退房这个答案一种简单的方法,通过目录遍历:https://stackoverflow.com/a/3154523/691606

Get the Mime Type from a File见。根据其中显示的前2(3)项技术,是这样的:

import javax.activation.MimetypesFileTypeMap; 
import java.io.File; 

class MimeForMedia { 

    public static void main(String[] args) { 
     String[] types = { 
      "png", "jpg", "gif", "tif", "bmp", // image 
      "snd", "wav", "mp3", "ogg", "au", // sound 
      "mov", "avi", "mpg", "flv" // video 
      }; 
     MimetypesFileTypeMap typeMap = new MimetypesFileTypeMap(); 
     for (String type : types) { 
      String name = "a." + type; 
      String bestType = typeMap.getContentType(name); 
      if (bestType.equals("application/octet-stream")) { 
       System.out.print("Using URLConnection: "); 
       try { 
        bestType = (new File(name)).toURI().toURL() 
         .openConnection().getContentType(); 
       } catch(Exception e) { 
        System.out.println(e.getMessage()); 
       } 
      } 
      System.out.println (type + " " + bestType); 
     } 
    } 
} 

以下是Windows 7 PC上的结果。

Using URLConnection: png image/png 
jpg image/jpeg 
gif image/gif 
tif image/tiff 
Using URLConnection: bmp content/unknown 
Using URLConnection: snd audio/basic 
wav audio/x-wav 
Using URLConnection: mp3 content/unknown 
Using URLConnection: ogg content/unknown 
au audio/basic 
mov video/quicktime 
avi video/x-msvideo 
mpg video/mpeg 
Using URLConnection: flv content/unknown 
Press any key to continue . . . 
+0

*“(甚至更好,MIME类型)。”*好主意,请问J2SE类提供的MIME /内容类型是什么?我无法在覆盖它的'File'或'FileSystemView'中看到任何东西。 –

+1

你很可能需要一个外部库。 查看http://www.rgagnon.com/javadetails/java-0487.html了解一些示例。 – RadicalRaid

+0

谢谢,我会试试这个方法! – HAxxor

5

迭代文件系统的所有文件夹并查找带有所需扩展名(如果有时间的话)的文件。

相关问题