بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]
پرسش و پاسخ

external storage(حل نشده)

مدیریت گفتگو
125142 9 سال پیش
آخرین تغییر: 9 سال پیش

با سلام به دوستان سوال من اینه که میخوام تو حافظه خارجی همون external storage یک پوشه بسازم و نامشو تغییر بدم چجوری باید اینکارو بکنم

تو نت سرچ کردم کد هاشو دیدم ولی امتحان کردم نشد یعنی sdcard رو نمیتونم پیدا کنم ممنون میشم کمکم بکنید

نظرات

پاسخ‌ها 4

Amir 9 سال پیش

اول از همه اینو بدونید که مسیر حافظه ی داخلی: storage/sdcard0/ و مسیر حافظه ی رم storage/sdcard1/ هست.

حالا برای ساخت پوشه از کد زیر باید استفاده کنید (به جای new-folder اسم پوشه رو بنویسید):

new File("/storage/sdcard0/new-folder").mkdirs(); // ساخت پوشه در حافظه ی داخلی
new File("/storage/sdcard1/new-folder").mkdirs(); // ساخت پوشه در رم

برای تغییر اسم پوشه هم از کد زیر استفاده کنید:

new File("/storage/sdcard0/new-folder").renameTo(new File("/storage/sdcard0/new-name")); // حافظه ی داخلی
new File("/storage/sdcard1/new-folder").renameTo(new File("/storage/sdcard1/new-name")) // رم

پرمیشن زیر رو هم به منیفست اضافه کنید:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

نظرات

125142 9 سال پیش

سلام نوشتمش ول نشد قبلا این راه رو امتحان کردم

نظرات

Amir 9 سال پیش
کدهایی که نوشتید رو اینجا بزارید. اگه خطا میده ارورهای توی Logcat رو هم بزارید.
jbRhmNqb 9 سال پیش

توی کلاس G کد زیر رو وارد کنید:

 public static final String   DIR_SDCARD   = Environment.getExternalStorageDirectory().getAbsolutePath();
    public static final String   DIR_FOLDER = DIR_SDCARD + "/folder_name/";

و داخل onCreate هم این پوشه رو بسازید(کد زیر در onCreate):

 new File(DIR_FOLDER).mkdirs();

نظرات

125142 9 سال پیش
environment. Getexternalstoragedirectory وقتی این رو خروجی میگیرم یعنی با toast پیغام میگیرم اصلا حافظه خارجی رو برنمیگردونه آدرس حافظه داخلی میده بجا sdcard, sdcard1 رو برمیگردونه
jbRhmNqb 9 سال پیش
منظورتون رو متوجه نشدم اما شاید permission مربوط رو توی منیفست وارد نکردین...
hamidptb 9 سال پیش

احتمال داره مشکل از ورژن API که ازش رو امولیتورت استفاده میکنی باشه چون خودمم به همین مشکل برخوردم .AVD که از API پایین تر از 23 ( marshmallow) استفاده میکنه رو امتحان کن احتمالا جواب میده چون برا خودم جواب داد . علتشم اینه که از اندروید 6 به بعد کاربر بعد از نصب نرم افزار اجازه ها رو (permisson) و به این علت که run کردن اپ رو امولتور دگ این رو شبیه سازی نمیکنه (دقیقا نمیدونم برا چی ) برنامه کرش میکنه . البته راه حلشم هم بگردی با سرچ پیدا میکنی ولی فک کنم با همون تست روی ورژن های پایین تر اندروید جواب بگیری

نظرات


پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .