2012-08-08 42 views
0

目前,我正在做以下,這不是我正在尋找的。我只是想能夠檢測到文件擴展名,並根據它,將其複製到服務器,或拒絕它。有沒有檢測文件擴展名的原生方式?

MimetypesFileTypeMap mimeTypesMap = new MimetypesFileTypeMap(); 
    FileInputStream is1 = new FileInputStream(file); 
    String mimeType = mimeTypesMap.getContentType(file); 

    InputStream is2 = new BufferedInputStream(new FileInputStream(file)); 
    String content = URLConnection.guessContentTypeFromStream(is2); 

    System.out.println(mimeType); 
    System.out.println(content); 

我得到了mimetype,但同樣,那不是我想要的。 URL.guessContentFromStream()始終返回空值。

播放是否有本地方式來讀取文件擴展名?還有什麼其他解決方案?

謝謝。

+1

你想知道的MIME類型或文件擴展名?如果文件擴展名有什麼問題''filename.txt「.substring(」filename.txt「.lastIndexOf('。'))'? – 2012-08-08 05:46:52

+0

@RosdiKasim你可以發佈這個答案,所以我可以接受它嗎?謝謝。 – theTuxRacer 2012-08-08 13:04:01

回答

1

檢測的文件擴展名是相當瑣碎,這裏就是我通常做:

String filename = "a long.filename.ext"; 
String extension = filename.substring(filename.lastIndexOf('.') + 1); 
2

使用FileTypeDetector從包java.nio.file.spi

請參閱此鏈接瞭解詳情:

http://openjdk.java.net/projects/nio/javadoc/java/nio/file/spi/FileTypeDetector.html

/////編輯//////

嘗試FileNameExtensionFilter

請參閱此鏈接:

http://docs.oracle.com/javase/6/docs/api/javax/swing/filechooser/FileNameExtensionFilter.html

+0

我沒有這樣的包。文檔說它在v1.7之後就存在了。我使用v1.6。 – theTuxRacer 2012-08-08 05:36:01

+0

查看編輯過的部分...... – 2012-08-08 05:47:58