Вопрос

Как лучше всего определить тип файла в Android?

Я хочу проверить, является ли данный файл изображением, музыкальным файлом и т. д.

Это было полезно?

Решение

<Ол>
  • Включите некоторые mime.types файлы в папке активов (например, из /etc/mime.types).
  • Включите activation.jar (от JAF) в пути сборки.
  • Используйте что-то вроде этого:

    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();
    }
    
  • Затем используйте 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