【发布时间】:2012-07-13 08:00:15
【问题描述】:
我使用以下代码获取文件的 mime 类型:
private String getMimeType(String url) {
String type = null;
String extension = MimeTypeMap.getFileExtensionFromUrl(url);
Log.e("extension ", extension);
if (extension != null) {
MimeTypeMap mime = MimeTypeMap.getSingleton();
type = mime.getMimeTypeFromExtension(extension);
}
return type;
}
where url is the absolute file path
i am getting file and folder by the following way
File file_arr [];
file_arr = new File(Environment.getExternalStorageDirectory().getPath()).listFiles();
url = file_arr[i].getAbsolutePath();
这是正确的,但它对于文件名中有点“.”的文件总是返回 null。。
举个例子
如果文件名是 picture1.jpg 那么 getMimeType() 返回 image/jpeg
如果文件名中包含点 (.),例如 27-05-2012 22.05.14.jpg,则 getMimeType() 返回 null。
我已将文件重命名为 27-05-2012.jpg,它的返回图像/jpeg。
我的问题是如何在 android 上获取所有类型的文件名(具有点或特殊字符)的 mime 类型?请帮我。
【问题讨论】:
-
文件名中有点时 MimeTypeMap.getFileExtensionFromUrl(url) 返回的值是多少?如果从第一个点开始,请尝试自己解析扩展。
-
@murali_ma 问题在于空白空间,如果消除它会起作用。
标签: android mime-types filenames android-file