آموزش تشخیص نوع فایل در برنامه نویسی اندروید
سلام دوستان امیدوارم حالتان خوب باشد در این سری از آموزش های برنامه نویسی اندروید به آموزش تشخیص نوع فایل در برنامه نویسی اندروید خواهیم پرداخت منظور از نوع فایل تشخص نوع فایل از روی پسوند فایل است به طور مثال تشخص نوع عکس یا نوع فیلم یا هر نوع داده از فایل را با استفاده از کد زیر می توانیم تشخیص دهیم به پسوند یا نوع داده ای در اندروید MimeType گفته می شود در ادامه با ما همراه باشید.
چندین روش برای اینکه نوع داده فایل را بررسی کنید وجود دارد از طریق آدرس آن فایل که به شکل زیر است.
1 2 3 4 5 6 7 8 | public static String getMimeType(String url) { String type = null; String extension = MimeTypeMap.getFileExtensionFromUrl(url); if (extension != null) { type = MimeTypeMap.getSingleton().getMimeTypeFromExtension(extension); } return type; } |
در بالا یک String یا یک آدرس باید در ورودی آن ارسال کنید سپس نوع داده را برای شما بر می گرداند.
برگرداندن نوع داده ای فایل از طریق Uri
1 2 3 4 5 6 7 8 9 10 11 12 13 | public String getMimeType(Uri uri) { String mimeType = null; if (uri.getScheme().equals(ContentResolver.SCHEME_CONTENT)) { ContentResolver cr = getAppContext().getContentResolver(); mimeType = cr.getType(uri); } else { String fileExtension = MimeTypeMap.getFileExtensionFromUrl(uri .toString()); mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension( fileExtension.toLowerCase()); } return mimeType; } |
گرفتن Uri یا نوع داده یا Mime Type از یک فایل این کد نسبتا کاربردی تر و ساده تر است !
1 2 3 | Uri uri = Uri.fromFile(file); ContentResolver cR = context.getContentResolver(); String mime = cR.getType(uri); |
به دست آوردن نوع داده ای (MimeType) از طریق Split یا LastIndexOf
1 2 3 4 5 6 7 | public static String getMimeType(String url) { String extension = url.substring(url.lastIndexOf(".")); String mimeTypeMap = MimeTypeMap.getFileExtensionFromUrl(extension); String mimeType = MimeTypeMap.getSingleton().getMimeTypeFromExtension(mimeTypeMap); return mimeType; } |
کد زیر برای برنامه نویسان Xamarin به خوبی کار خواهد کرد !
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public String getMimeType(Uri uri) { String mimeType = null; if (uri.Scheme.Equals(ContentResolver.SchemeContent)) { ContentResolver cr = Application.Context.ContentResolver; mimeType = cr.GetType(uri); } else { String fileExtension = MimeTypeMap.GetFileExtensionFromUrl(uri.ToString()); mimeType = MimeTypeMap.Singleton.GetMimeTypeFromExtension( fileExtension.ToLower()); } return mimeType; } |
برای تست می توانید مثل زیر عمل کنید !
1 2 | String url = "file.txt"; Toast.makeText(getActivity(), getMimeType(url) + نوع داده ای برابر است با :, Toast.LENGTH_LONG).show(); |
این آموزش هم همانند آموزش های دیگر به پایان رسید.
موفق و پیروز باشید.