Java MimetypesFileTypeMap始终在Android emulator上返回应用程序/八位字节流
我正在尝试确定存储在Android设备上的文件的Mime/媒体类型(实际上是我与emulator一起使用的虚拟设备)。我找到了这个资源,它推荐了Java MimetypesFileTypeMap始终在Android emulator上返回应用程序/八位字节流,java,android,mime-types,Java,Android,Mime Types,我正在尝试确定存储在Android设备上的文件的Mime/媒体类型(实际上是我与emulator一起使用的虚拟设备)。我找到了这个资源,它推荐了javax.activation.MimetypesFileTypeMap,但是当我运行以下代码时,我得到了所有文件类型的application/octet-stream: MimetypesFileTypeMap map = new MimetypesFileTypeMap(); File dir = Environment.getExternal
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()));
}
}
}
MimetypesFileTypeMap=new MimetypesFileTypeMap();
File dir=Environment.getExternalStorageDirectory();
File[]files=dir.listFiles();
字符串模拟类型;
对于(int i=0;i
我已经用以下扩展名的文件测试过了:jpg、txt、doc、xslx和pdf,它们都返回相同的结果。我需要做些什么来初始化地图吗?这个库在Android上找不到支持的mime类型列表吗?有没有更好的方法在Android上获取文件的mime类型?也有这个问题。根据Java文档,MimetypesFileTypeMap进行搜索
# 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!
#注释以散列标记开头
#格式是
#例如,对于图像mime类型和文本mime类型
图像png tif jpg jpeg bmp
文本文本rtf文本
#将这些行放在2-4指定的文件中,或
MimetypesFileTypeMap mtftp=新的MimetypesFileTypeMap();
mtftp.addMimeTypes(“图像png tif jpg jpeg bmp”)
#就这么简单!
我也有同样的问题(不涉及android),请参见此链接。我认为我们需要添加一个包含完整mime类型列表的ReSurce文件,但尚未尝试。然而,根据MimetypesFileTypeMap文档,确切的文件格式如下:**text/plain txt text txt**(抱歉,我无法格式化此文件。:()