آموزش اندروید استودیوآموزش های برنامه نویسی اندروید
آموزش برنامه نویسی اندروید با اندروید استودیو (بخش پنجاه و ششم: بررسی امکان وجود فایل در دایرکتوری معین )
در بخش قبلی این موضوع را بررسی کردیم که چگونه می توان، امکان دسترسی خواندن و نوشتن (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(); }
با سلام خدمت شما که پیام مرا نگاه میکنین و سلام به شما که مسئول جواب دادن به این نوشته هستید…
عرضم به حضور شما
Environment.getExternalStorageDirectory().getAbsolutePath();
دستور گرفتن مسیر حافظه داخلی گوشیه و نه اس دی کارد.
آموزش گرفتن مسیر اس دی کارت رو کجا گفتین؟میشه اگه وجود داره لینک رفتن به اون آموزش رو به من بدید؟
درود دوست عزیز
Environment.getExternalStorageDirectory()
مثال
File folder = new File(Environment.getExternalStorageDirectory(),“*YourStorageNameInDevice”);