Cómo determinar los tipos de archivos en Android
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.
Solución
- Incluir algunos archivos
mime.types
en su carpeta de activos (por ejemplo, de /etc/mime.types). - Incluir
activation.jar
(de JAF) en su trayectoria de la estructura. -
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(); }
-
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