مجموعه سوالات کار با فایل (اسم تاپیک سه بار عوض شده !)
سلام دوستان
من میخوام که برنامه ایی بسازم که خیلی شبیه به CMD ویندوز باشه
چطور میتونم همچین چیزی رو طراحی کنم؟
برای شروع یک سری دستورات ساده مثل زیر نیاز دارم
CD و DIR و MD و RD و Echo text > text.txt و start file.jpg و start D:\folder و type file.txt
متاسفانه معادل دستورات بالا رو برای اندرویید بلد نیستم ! توی کدوم بخش اموزشی میشه این موارد رو دید ؟
من از دستور زیر استفاده کردم
String value = Environment.getExternalStorageState();
Log.i("LOG", "" + value);
خروجی هم mounted بود
خب این یعنی چی ؟
-------------------------------
جواب پیدا شد <
Environment.getExternalStoragePublicDirectory();
کد بالا چی هست ؟ و برای ورودی اون چی باید بزاریم ؟ که گیر نده ؟
--------------------------------
من برای تست دستورات زیر رو استفاده کردم اما برنامه هیچ اررو و کرشی نداشت
اما من نتونستم اتفاقی رو مشاهده کنم ؟ دقیقا چه اتفاقی افتاده ؟ چرا برای دستور اول اررور نداد ؟ و برای دستور دوم هیچ فولدری ایجاد شده ؟ در چه ادرسی ؟
File diri = new File(sdCard.getAbsolutePath() + "diri");
File dirii = new File("/dirii");
diri.mkdir();
dirii.mkdir();
چون پايه سيستم عامل اندرويد لينوکس هست نه داس ، وقتي از خط فرمان استفاده ميکنيد بايد از دستورات ترمينال لينوکس/يونيکس استفاده کنيد
مثلا به جاي Dir از ls استفاده ميکنيد
برنامه ترمينال براي اندرويد موجود ميباشد و اسمش هم Terminal Emulator هست.
دستورات مجاز استفاده در کنسول هم در اينترنت فراوان توضيح داده شده. اگر مشکلي بود بفرماييد توضيح دهم
خب کلی سرچ کردم و فعلا به نتایج زیر رسیدم
معادل دستور Dir یا Ls میتونید از دستورات زیر استفاده کنید
File sdCard = Environment.getExternalStorageDirectory();
File[] files = sdCard.listFiles();
String[] files2 = sdCard.list();
for (int i = files.length; i > 0; i--) {
Log.i("LOG","" + files[i - 1]);
}
for (int i = files2.length; i > 0; i--) {
Log.i("LOG","" + files2[i - 1]);
}
برای ساختن یک فایل Text به شوه زیر انجام میشه
File sdCard = Environment.getExternalStorageDirectory();
File file = new File(sdCard, "/dir/myData.txt");
FileOutputStream f = null;
try {
f = new FileOutputStream(file);
}
catch (FileNotFoundException e) {
e.printStackTrace();
}
PrintWriter pw = new PrintWriter(f);
pw.println("Hi , How are you");
pw.println("Hello");
pw.flush();
pw.close();
try {
f.close();
}
catch (IOException e) {
e.printStackTrace();
}
حالا سوال من این هست که تفاوت دستورات زیر چی هست ؟ ممکنه در صورت نبودن فایل و delete کردن اون برنامه کرش کنه؟
file.deleteOnExit();
file.delete();
روش بالا برای حذف فایل و دایرکتوری یکی هست و تفاوتی نداره درسته ؟
=-----------------------------------------------------=
سلام دوباره
چطور میشه اسم فایل و فولدر رو تغییر داد ؟
چطور میشه پسوند یک فایل رو تغییر داد؟
چطور میشه یک فولدر رو با تمام محتویاتش حذف کرد؟
سلا مجدد
دوستان چطور میشه مشابه ویژوال بیسیک که میشه دستورات شل(برخی دستورات CMD DOS) رو اجرا کرد . برای اندروید هم شل بزنیم و برخی دستورات لینوکس رو اجرا کنیم و خروجی بگیریم؟
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .