كيفية تحديد أنواع الملفات في Android
سؤال
ما هي أفضل طريقة لتحديد نوع الملف في 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";
}
الطريقة الشائعة هي امتدادها فقط، أو يمكنك تحليل الرأس، ولكن يجب أن تكون أبطأ بكثير وأكثر تعقيدا لتطبيقاتك.
لا تنتمي إلى StackOverflow