آموزش اندروید استودیوآموزش های برنامه نویسی اندروید

آموزش برنامه نویسی اندروید با اندروید استودیو (بخش پنجاه و ششم: بررسی امکان وجود فایل در دایرکتوری معین )

[vc_row][vc_column][vc_column_text]

در بخش قبلی این موضوع را بررسی کردیم که چگونه می توان، امکان دسترسی خواندن و نوشتن (R/W) در حافظه ی خارجی را با استفاده از کدهای برنامه نویسی، بررسی نمود.

در این بخش می خواهیم با استفاده از آدرس فایل (دایرکتوری) ، به فایل دسترسی پیدا کرده و امکان وجود یا عدم وجود فایل در دایرکتوری مشخص را بررسی نماییم.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

من یک پروژه به نام Files-Gsm در اندروید استودیو ایجاد می کنم.

به سراغ کد جاوای برنامه (MainActivity.java) رفته و کد زیر را در متد ()onCreate می نویسم.

این کد برای بررسی وجود یک فایل با مشخصات زیر به کار می رود.

FileName= 1.txt

Directory = /Android/

سپس با استفاده از پیغام Toast امکان وچود فایل در دایرکتوری مشخص شده، بررسی می شود.

[/vc_column_text][vc_column_text]
String fileName = "1.txt"; // نام فایل
String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath(); // مسیر پایه حافظه خارجی
String pathDir = baseDir + "/Android/"; // مسیر دایرکتوری

File f = new File(pathDir + File.separator + fileName); // تعریف فایل با استفاده از دو پارامتر نام فایل و مسیر آن
if(f.exists()){
    Toast.makeText(getApplicationContext(),"File Vojud Darad", Toast.LENGTH_SHORT).show(); // پیغامی جهت نشان دادن وجود فایل
        }
else{
    Toast.makeText(getApplicationContext(),"File Vojud Nadarad", Toast.LENGTH_SHORT).show(); //پیغامی جهت عدم وجود فایل 
        }
[/vc_column_text][vc_column_text]

شرح کد:

[/vc_column_text][vc_column_text][/vc_column_text][vc_column_text]

فرض می کنیم فایلی به صورتی که در تصویر مشاهده می کنید وجود دارد.

یعنی نام آن:

1.txt

و مسیر آن فایل نیز در مسیر اصلی و پوشه ی Android می باشد.

برای این فایل باید دایرکتوری مسیر زیر را در قسمت کدنویسی جاوا تعریف نماییم:

/Android/

مثلا اگر فایل در پوشه ای به نام Pictures در پوشه ی Telegram باشد (Telegram->Pictures)، مسیر آن به صورت زیر می شود:

/Telegram/Pictures/

[/vc_column_text][vc_column_text]

پس در مرحله ی اول، نام این فایل را تعریف می کنیم.

String fileName = "1.txt";

سپس مسیر اصلی حافظه ی خارجی (یعنی همان قسمت اصلی که اگر پوشه ی Telegram در آن باشد مسیر به صورت /Telegram/ می شود) را با استفاده از کد زیر به دست می آوریم.

( این مسیر، همان مسیر اصلی می باشد که وقتی فایل منیجر را نصب می کنیم عموما ما را به همین سمت هدایت می کنند)

String baseDir = Environment.getExternalStorageDirectory().getAbsolutePath();

در مرحله ی بعدی مسیری که ما می توانیم با استفاده از فایل منیجر خودمان ببینیم را مشخص می کنیم ( مثلا پوشه ی Telegram)

در این جا ما پوشه ی /Android/ را که در حافظه ی خارجی است، تعریف می نماییم.

String pathDir = baseDir + "/Android/";

با کمی دقت متوجه می شوید که این مسیر باعث می شود که مسیری نسبی (/Android/) را نسبت به مسیر پایه (baseDir) که همان حافظه ی خارجی ما است، مشخص نماییم.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

در مرحله ی بعدی یک شی به نام f از کلاس File می سازیم و با استفاده از مسیر دایرکتوری که به برنامه گفتیم و نام فایلی که می خواهیم آن را تعریف می کنیم.

File f = new File(pathDir + File.separator + fileName);

در قسمت اول، pathDir یعنی مسیر دایرکتوری و در قسمت سوم، fileName یعنی همان نام فایل از ورودی های سازنده برای این شی می باشند.

[/vc_column_text][vc_column_text]

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

if(f.exists()){
            Toast.makeText(getApplicationContext(),"File Vojud Darad", Toast.LENGTH_SHORT).show();
        }
else{
            Toast.makeText(getApplicationContext(),"File Vojud Nadarad", Toast.LENGTH_SHORT).show();
        }
[/vc_column_text][vc_column_text]

با استفاده از پیغام Toast ، پیام های تعریف شده در بالا به کاربر نشان داده می شود.

[/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_column_text]

پروژه را Run می کنم.

اگر فایل، طبق تصویر در همان مسیر وجود داشته باشد، مشاهده می کنید که با پیغام “File Vojud Darad” مواجه می شویم.

[/vc_column_text][vc_column_text][/vc_column_text][vc_column_text]

ولی اگر فایل وجود نداشته باشد، با پیغام “File Vojud Nadarad” مواجه می شویم.

[/vc_column_text][vc_column_text][/vc_column_text][/vc_column][/vc_row][vc_row][vc_column][vc_btn title=”بخش پنجاه و پنجم: بررسی امکان دسترسی خواندن و نوشتن در حافظه” color=”green” i_icon_fontawesome=”fa fa-android” add_icon=”true” link=”url:http%3A%2F%2Fwww.gsm-developers.com%2Fcheck-external-storage-android-studio|title:%D8%A8%D8%AE%D8%B4%20%D9%BE%D9%86%D8%AC%D8%A7%D9%87%20%D9%88%20%D9%BE%D9%86%D8%AC%D9%85%3A%20%D8%A8%D8%B1%D8%B1%D8%B3%DB%8C%20%D8%A7%D9%85%DA%A9%D8%A7%D9%86%20%D8%AF%D8%B3%D8%AA%D8%B1%D8%B3%DB%8C%20%D8%AE%D9%88%D8%A7%D9%86%D8%AF%D9%86%20%D9%88%20%D9%86%D9%88%D8%B4%D8%AA%D9%86%20%D8%AF%D8%B1%20%D8%AD%D8%A7%D9%81%D8%B8%D9%87||”][vc_btn title=”در صورت ارائه سوالات و مشکلات خود به انجمن اختصاصی اندروید مراجعه نمایید” style=”classic” color=”blue” link=”url:http%3A%2F%2Fforum.gsm-developers.com|title:%D8%AF%D8%B1%20%D8%B5%D9%88%D8%B1%D8%AA%20%D8%A7%D8%B1%D8%A7%D8%A6%D9%87%20%D8%B3%D9%88%D8%A7%D9%84%D8%A7%D8%AA%20%D9%88%20%D9%85%D8%B4%DA%A9%D9%84%D8%A7%D8%AA%20%D8%AE%D9%88%D8%AF%20%D8%A8%D9%87%20%D8%A7%D9%86%D8%AC%D9%85%D9%86%20%D8%A7%D8%AE%D8%AA%D8%B5%D8%A7%D8%B5%DB%8C%20%D8%A7%D9%86%D8%AF%D8%B1%D9%88%DB%8C%D8%AF%20%D9%85%D8%B1%D8%A7%D8%AC%D8%B9%D9%87%20%D9%86%D9%85%D8%A7%DB%8C%DB%8C%D8%AF||”][/vc_column][/vc_row]

Arash

طراح سایت و برنامه نویس

‫2 دیدگاه ها

  1. با سلام خدمت شما که پیام مرا نگاه میکنین و سلام به شما که مسئول جواب دادن به این نوشته هستید…
    عرضم به حضور شما
    Environment.getExternalStorageDirectory().getAbsolutePath();
    دستور گرفتن مسیر حافظه داخلی گوشیه و نه اس دی کارد.
    آموزش گرفتن مسیر اس دی کارت رو کجا گفتین؟میشه اگه وجود داره لینک رفتن به اون آموزش رو به من بدید؟

  2. درود دوست عزیز
    Environment.getExternalStorageDirectory()

    مثال
    File folder = new File(Environment.getExternalStorageDirectory(),“*YourStorageNameInDevice”);

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا