我使用以下代码获取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()返回映像/jpeg
在文件名有点(.)的情况下在示例27-05-2012 22.05.14.jpg的名称中,getMimeType()返回null。
我已经将文件重命名为27-05-2012.jpg,它的返回映像/jpeg。
我的问题是,如何在android上获得所有类型的文件名(有点或特殊字符)的mime类型?请帮帮我。
发布于 2012-07-13 08:09:37
这个怎么样:
File f = new File(file);
System.out.println(new MimetypesFileTypeMap().getContentType(f));或
if(url.lastIndexOf(".") != -1) {
String ext = url.substring(url.lastIndexOf(".")+1);
MimeTypeMap mime = MimeTypeMap.getSingleton();
String type = mime.getMimeTypeFromExtension(ext);
} else {
String type = null;
}发布于 2012-07-13 08:18:27
private String getMimeType(String url) {
String fileExtension = MimeTypeMap.getFileExtensionFromUrl(url);
String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(
fileExtension);
Toast.makeText(
this,
"FileExtension: " + fileExtension + "\n" + "MimeType: "
+ mimeType, Toast.LENGTH_LONG).show();
return mimeType;
}问题在于文件名之间的空格,请尝试以下代码,以便获取任何文件的mime类型( ".“、"-”、"_“)等等.
尝试使用这个,即使它会起作用:27-05-20.....1222.05.14.jpg
https://stackoverflow.com/questions/11466422
复制相似问题