Pregunta

¿Cuál es la mejor manera de determinar un tipo de archivo en Android?

Quiero comprobar si el archivo dado es una imagen, un archivo de música, etc.

¿Fue útil?

Solución

  1. Incluir algunos archivos mime.types en su carpeta de activos (por ejemplo, de /etc/mime.types).
  2. Incluir activation.jar (de JAF) en su trayectoria de la estructura.
  3. Utilice algo como esto:

    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. A continuación, utilice FileDataSource.getContentType() para obtener los tipos de archivo.

Otros consejos

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

Una forma común es por su extensión única, o se puede analizar la cabecera, pero debería ser demasiado lento y más complejo para sus aplicaciones.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top