2012-05-04 78 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

迭代文件系統的所有文件夾並查找帶有所需擴展名(如果有時間的話)的文件。

相關問題