2011-01-31 12 views
9

Androidデバイス(実際にはエミュレータで使用している仮想デバイス)に保存されているファイルのMime/Media Typeを特定しようとしています。 JPG、TXT、DOC、xslx:Java MimetypesFileTypeMapは常にAndroidエミュレータでアプリケーション/オクテットストリームを返します

MimetypesFileTypeMap map = new MimetypesFileTypeMap(); 
File dir = Environment.getExternalStorageDirectory(); 
File[] files = dir.listFiles(); 
String mimeType; 
for(int i = 0; i < files.length; ++i) { 
    if(files[i].isDirectory() == false) { 
     mimeType = map.getContentType(files[i]); 
     if(mimeType.toLowerCase().equals("application/octet-stream")) { 
      Log.d("mytag", 
       String.format("Unable to determine the mime type of file %s.", 
       files[i].getName())); 
     } 
    } 
} 

私は次の拡張子を持つファイルでこれをテストしている:私はすべてのファイルタイプのためapplication/octet-streamを取得するには、次のコードを実行したときしかし、javax.activation.MimetypesFileTypeMapを推奨しています。このリソースGet the MIME Type from a Fileを見つけましたpdfとそれらはすべて同じことを返します。地図を初期化するために何かしなければならないことはありますか?このライブラリはAndroidでサポートされているMIMEタイプのリストを見つけることができませんか? AndroidでファイルのMIMEタイプを取得するより良い方法はありますか?

+0

を解決するために

私はこのリンクhttp://stackoverflow.com/questions/を参照してください(アンドロイドが関与していない)同じ問題を抱えています6308142/additional-mimetypes-to-mimetypesfiletypemap。私は私たちがまだ試していない、MIMEタイプの完全なリストを含む再発声ファイルを追加する必要があると思う。 –

答えて

13

この問題もありました。 Java Docsによると、MimetypesFileTypeMapは、

を返します。
  1. MimetypesFileTypeMapインスタンスにプログラムでエントリを追加しました。
  2. ユーザーのホームディレクトリにある.mime.typesファイル。
  3. ファイルが
  4. ファイルやリソースという名前のMETA-INF/MIMEタイプ
  5. META-INF/MIME-types.defaultという名前のファイルまたはリソース(通常のみ活性化に見つかりました/lib/mime.types .jarファイル)

あなたのMIMEタイプがすべて「アプリケーション/オクテットストリーム」として出ている場合は、上記のいずれのファイルも存在しない(または存在しているが不完全である)ことを意味し、 MimetypesFileTypeMapインスタンスへのエントリ。 ...

てMimetypesFileTypeMapのMIMEタイプの指定形式

# comments start with hash marks 
# format is <mime type> <space separated file extensions> 
# for example, for an image mime type and a text mime type 
image png tif jpg jpeg bmp 
text txt text rtf TXT 
# either place those lines within the files specified by 2-4 or 

MimetypesFileTypeMap mtftp = new MimetypesFileTypeMap(); 
mtftp.addMimeTypes("image png tif jpg jpeg bmp") 

# and it's as easy as that! 
+0

試してみた。ありがとう!!! –

+0

MimetypesFileTypeMapのドキュメントによると、正確なファイル形式は次のとおりです。 ** text/plain txt text TXT ** (これはフォーマットできません:() – MGM

関連する問題