Comment déterminer les types de fichiers dans Android
Question
Quelle est la meilleure façon de déterminer un type de fichier dans Android?
Je veux vérifier si le fichier est donné une image, un fichier musical, etc.
La solution
- Inclure des fichiers
mime.types
dans votre dossier actif (par exemple de /etc/mime.types). - Inclure
activation.jar
(de JAF) dans votre chemin de construction. -
Utilisez quelque chose comme ceci:
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(); }
-
Utilisez ensuite
FileDataSource.getContentType()
pour obtenir les types de fichiers.
Autres conseils
public static String getMimeType(String fileUrl) {
String extension = MimeTypeMap.getFileExtensionFromUrl(fileUrl);
final String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension);
return (mimeType != null) ? mimeType : "unknown";
}
Une façon courante est par leur extension seulement, ou vous pouvez analyser l'en-tête, mais il devrait être trop lent et plus complexe pour vos applications.
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow