【发布时间】:2011-06-18 20:15:06
【问题描述】:
我正在尝试确定 Android 设备(实际上是我与模拟器一起使用的虚拟设备)上存储的文件的 Mime/媒体类型。我找到了这个资源Get the MIME Type from a File,它推荐了javax.activation.MimetypesFileTypeMap,但是当我运行以下代码时,我得到了所有文件类型的application/octet-stream:
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()));
}
}
}
我已经使用具有以下扩展名的文件对此进行了测试:jpg、txt、doc、xslx 和 pdf,它们都返回相同的内容。我需要做些什么来初始化地图吗?这个库不能在 Android 上找到支持的 mime 类型列表吗?有没有更好的方法在 Android 上获取文件的 mime 类型?
【问题讨论】:
-
我也有同样的问题(不涉及android),请参阅此链接stackoverflow.com/questions/6308142/…。我认为我们需要添加一个包含完整 mime 类型列表的资源文件,但尚未尝试过
标签: java android mime-types