سؤال

ما هي أفضل طريقة لتحديد نوع الملف في Android؟

أريد أن تحقق ما إذا كان الملف المحدد هو صورة أو ملف موسيقى، إلخ.

هل كانت مفيدة؟

المحلول

  1. تشمل بعضا mime.types الملفات في مجلد الموجودات الخاصة بك (على سبيل المثال من /etc/mime.types).
  2. تتضمن activation.jar (من JAF) في مسار البناء الخاص بك.
  3. استخدام شيء مثل هذا:

    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. ثم استخدام 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