2012-03-12 11 views
3

私は、Javaを使用して特定のファイルタイプを識別するために次の方法を使用しようとしています。 Webアプリケーションでこのようなことを実装する必要があります。Javaで特定のファイルタイプを特定する最良の方法は何ですか?

package filetype; 

import java.io.File; 
import java.net.URLConnection; 

final public class FileType 
{ 
    public static void main(String[] args) 
    { 
     File temp=new File("G:/mountain.jpg"); 
     System.out.println(URLConnection.guessContentTypeFromName(temp.getAbsolutePath())); 

     temp=new File("G:/myFile.txt"); 
     System.out.println(URLConnection.guessContentTypeFromName(temp.getAbsolutePath())); 

     temp=new File("G:/zipByJava.zip"); 
     System.out.println(URLConnection.guessContentTypeFromName(temp.getAbsolutePath())); 

     temp=new File("G:/MLM/Login.aspx"); 
     System.out.println(URLConnection.guessContentTypeFromName(temp.getAbsolutePath())); 

     temp=new File("G:/power_point.pptx"); 
     System.out.println(URLConnection.guessContentTypeFromName(temp.getAbsolutePath())); 

     temp=new File("G:/excel_sheet.xlsx"); 
     System.out.println(URLConnection.guessContentTypeFromName(temp.getAbsolutePath())); 

     temp=new File("G:/word_document.docx"); 
     System.out.println(URLConnection.guessContentTypeFromName(temp.getAbsolutePath())); 
    } 
} 

次の出力をコンソールに表示します。最後の4例で

image/jpeg 
text/plain 
application/zip 
null 
null 
null 
null 

、それはnullを表示し、指定したファイルのファイルタイプを認識できません。 Javaで特定のファイルタイプを特定する最良の方法は何ですか?

+2

[JavaではファイルのMIMEタイプを取得する]の可能な重複(http://stackoverflow.com/questions/51438/ get-a-files-mime-type-in​​-java) – aioobe

答えて

4

使用

Files.probeContentType() 

http://openjdk.java.net/projects/nio/javadoc/java/nio/file/Files.html#probeContentType(java.nio.file.Path)

そして、あなたは、あなたが遭遇すると思う任意の奇数ボールタイプのカスタム検出器を追加します。

編集:ここでは

がV7用のOracleのJavaDocがある

http://docs.oracle.com/javase/7/docs/api/java/nio/file/Files.html#probeContentType(java.nio.file.Path)

+1

'java.nio.file.Files'はjdk 7の一部です。私はjdk 6で作業しています。インターネット上の適切なライブラリを検索しようとしましたが、無駄に。検索結果には、それを使用するためにjdk 7がインストールされている必要があることが記載されています。 – Bhavesh

関連する問題