在 Android 中确定文件类型的最佳方法是什么?

我想检查给定的文件是否是图像、音乐文件等。

有帮助吗?

解决方案

  1. 包括一些 mime.types 资产文件夹中的文件(例如来自 /etc/mime.types)。
  2. 包括 activation.jar (来自 JAF)在您的构建路径中。
  3. 使用这样的东西:

    try {
        MimetypesFileTypeMap mftm = 
            new MimetypesFileTypeMap(getAssets().open("mime.types"));
        FileTypeMap.setDefaultFileTypeMap(mftm);
    } catch (FileNotFoundException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }
    
  4. 然后使用 FileDataSource.getContentType() 获取文件类型。

其他提示

public static String getMimeType(String fileUrl) {
    String extension = MimeTypeMap.getFileExtensionFromUrl(fileUrl);
    final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
    return (mimeType !=  null) ? mimeType : "unknown";
}

一个常见的方式不仅是由它们的扩展,或者您也可以解析头,但它应该为您的应用程序过慢得多,也更复杂。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top