سبد (0)

اشتراک فایل-واکشی اطلاعات فایل

آن چه در این درس خواهید آموخت:

  1. واکشی نوع MIME فایل
  2. نحوی واکشی سایز و نام فایل

مواردی که باید مطالعه کرده باشید:

  • واکشی اطلاعات از File Provider

اشتراک فایل ها - نحوه واکشی اطلاعات فایل

قبل از اینکه برنامه ی درخواست کننده ی فایل کاری روی فایل انجام دهد، می تواند اطلاعاتی را در مورد فایل از برنامه ی سرویس دهنده درخواست کند. این اطلاعات می تواند نوع داده ی فایل، سایز فایل و غیره باشد. وقتی برنامه ی درخواست کننده نوع فایل را بداند می تواند تشخیص دهد که آیا می تواند فایل را مدیریت کند یا نه و وقتی سایز فایل را بداند می تواند میزان بافر و کشی که برای فایل نیاز است را تنظیم کند.

در این آموزش اندروید یاد می گیرید که چگونه کوئری به برنامه ی سرویس دهنده ارسال کنید و نوع MIME فایل و سایز آن را بازیابی کنید.


واکشی نوع MIME فایل

وقتی برنامه ی کلاینت نوع داده ی فایل را بداند، آنگاه می تواند محتوای فایل را دستکاری کند. برای دستیابی به نوع داده یک فایل با داشتن URI آن فایل، برنامه ی کلاینت می بایست تابع ()ContetnResolver.getType را فراخوانی کند. این متد نوع MIME فایل را برمی گرداند. به طور پیش فرض، FileProvider نوع MIME فایل را با استفاده از پسوند فایل تشخیص می دهد.

تکه کد زیر نشان می دهد که چگونه برنامه ی کلاینت هنگامی که فایلی را از برنامه سرویس دهنده دریافت کرد، نوع MIME آن فایل را بازیابی می کند.

نحوه ی بازیابی نوع MIME فایل در برنامه ی کلاینت

 
   ...
/*
* Get the file's content URI from the incoming Intent, then
* get the file's MIME type
*/
UrireturnUri =returnIntent.getData();
StringmimeType =getContentResolver().getType(returnUri);
...



نحوی واکشی سایز و نام فایل

کلاس FileProvider یک پیاده سازی پیش فرض از متد ()query دارد. این متد نام و سایز فایل مربوط به URI را در قالب Cursor برمی گرداند. در این پیاده سازی دو ستون به عنوان نتیجه برگردانده می شود.

  • DISPLAY_NAME
    نام فایل را به صورت رشته بر می گرداند. این مقدار مشابه مقداری است که با فراخوانی ()File.getName به دست می آمد.
  • SIZE
    سایز فایل را به صورت بایتی نمایش می دهد که عدد حاصل از نوع long می باشد. این مقدار مشابه مقداری است که با فراخوانی ()File.length به دست می آید.

اگر برنامه ی کلاینت آرگومان URI مربوط به متد ()query را مقدار دهی کند و سایر آرگومان ها را null قرار دهد، می تواند هم SIZE و هم DISPLAY_NAME آن فایل را به دست بیاورد.

بازیابی نام و آدرس یک فایل

 
   ...
/*
* ابتدا یو آر آی فایل را به دست می آوریم س پس روی سرور کوئری می زنیم تا نام و سایر را به دست آوریم
*/
UrireturnUri =returnIntent.getData();
CursorreturnCursor =
getContentResolver().query(returnUri,null,null,null,null);
/*
* اندیس ستون های داده ی کرسر را به دست می آوریم
* به اولین ردیف کرسر حرکت می کنیم و داده های مورد نظر را واکشی می کنیم
* و نمایش می دهیم
*/
intnameIndex =returnCursor.getColumnIndex(OpenableColumns.DISPLAY_NAME);
intsizeIndex =returnCursor.getColumnIndex(OpenableColumns.SIZE);
returnCursor.moveToFirst();
TextViewnameView =(TextView)findViewById(R.id.filename_text);
TextViewsizeView =(TextView)findViewById(R.id.filesize_text);
nameView.setText(returnCursor.getString(nameIndex));
sizeView.setText(Long.toString(returnCursor.getLong(sizeIndex)));
...
تمامی محصولات و خدمات این وبسایت، حسب مورد دارای مجوزهای لازم از مراجع مربوطه می‌باشند و فعالیت‌های این سایت تابع قوانین و مقررات جمهوری اسلامی ایران است.
logo-samandehi مجوز نشر دیجیتال از وزرات فرهنگ و ارشاد اسلامی پرداخت آنلاین -  بانک ملت معرفی بیاموز در شبکه سه