- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在尝试确定存储在 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,它们都返回相同的内容。我需要做些什么来初始化 map 吗?这个库在 Android 上找不到支持的 mime 类型列表吗?有没有更好的方法在 Android 上获取文件的 mime 类型?
最佳答案
我也遇到过这个问题。根据 Java 文档,MimetypesFileTypeMap 搜索
如果你的 Mimetypes 都以“application/octet-stream”的形式出现,这意味着你没有上述文件存在(或者它们存在但不完整)并且没有向你的 MimetypesFileTypeMap 实例添加任何条目。
解决...
MimetypesFileTypeMap mimetypes 规范格式
# 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!
关于Java MimetypesFileTypeMap 总是在 Android 模拟器上返回 application/octet-stream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4855627/
我正在尝试从文件中获取 mime 类型,但它似乎总是在返回 application/octet MimetypesFileTypeMap mftm = new MimetypesFileTypeM
我在将 Mimetypes 添加到 MimetypesFileTypeMap 时遇到问题。我试过添加一个 META-INF/mime.types 文件,就像 Documentation说到。但它似乎没
我有一些代码: import javax.activation.MimetypesFileTypeMap; ... .. . String filename = "foo.xls"; // Where
我正在编写一个代码,用于下载存储在 MySQL 中的不同文件。我已经使用 MimetypesFileTypeMap 的方法 mimetypesFileTypeMap.getContentType()
我正在尝试确定存储在 Android 设备(实际上是我与模拟器一起使用的虚拟设备)上的文件的 Mime/媒体类型。我找到了这个资源 Get the MIME Type from a File它推荐 j
我正在尝试使用 javax.activation.MimetypesFileTypeMap 获取内容类型。 对于字符串“image.png”,它总是返回“application/octect-stre
在我的 android 项目中,我使用了一个将使用该类的外部 jar 错误信息如下: 06-13 02:45:18.586: ERROR/dalvikvm(228): 找不到类 'javax.acti
我是一名优秀的程序员,十分优秀!