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

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

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

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

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

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

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

FileName= 1.txt

Directory = /Android/

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

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(); //پیغامی جهت عدم وجود فایل 
        }

شرح کد:

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

یعنی نام آن:

1.txt

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

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

/Android/

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

/Telegram/Pictures/

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

String fileName = "1.txt";

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

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

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

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

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

String pathDir = baseDir + "/Android/";

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

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

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

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

با استفاده از متد 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();
        }

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

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

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

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

Arash

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

‫2 دیدگاه ها

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

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

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

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

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

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