بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
ایجاد نشدن دایرکتوری ( فولدر ) در گوشی موبایل
سلام دوستان , من سعی کردم با کد زیر یک فولدر بسازم :
File file = new File(Environment.getExternalStorageDirectory().getAbsolutePath() + "/xFolder/"); if(!file.exists()){ file.mkdirs(); }
که روی جنی موشن به درستی کار میکنه , اما وقتی رو گوشی تست کردم متاسفانه کار نکرد (تنها فرق گوشی اینه که درگاه sd card نداره )
یک کد دیباگ رو نت پیدا کردم به این صورت
Log.d("DEBUG_LOG", ">> Let's debug why this directory isn't being created: "); Log.d("DEBUG_LOG", "Is it working?: " + file.mkdirs()); Log.d("DEBUG_LOG", "Does it exist?: " + file.exists()); Log.d("DEBUG_LOG", "What is the full URI?: " + file.toURI()); Log.d("DEBUG_LOG", "--"); Log.d("DEBUG_LOG", "Can we write to this file?: " + file.canWrite()); if (!file.canWrite()) { Log.d("DEBUG_LOG", ">> We can't write! Do we have WRITE_EXTERNAL_STORAGE permission?"); if (getBaseContext().checkCallingOrSelfPermission("android.permission.WRITE_EXTERNAL_STORAGE") == PackageManager.PERMISSION_DENIED) { Log.d("DEBUG_LOG", ">> We don't have permission to write - please add it."); } else { Log.d("DEBUG_LOG", "We do have permission - the problem lies elsewhere."); } } Log.d("DEBUG_LOG", "Are we even allowed to read this file?: " + file.canRead()); Log.d("DEBUG_LOG", "--"); Log.d("DEBUG_LOG", ">> End of debugging.");
که گفت مشکل از نداشتن پرمیشنه ( در صورتی که پرمیشن رو به صورت زیر اد کردم ( بالای تگ application )
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
به نظرتون مشکل چی میتونه باشه ؟
برای این سوال 2 پاسخ وجود دارد.

پاسخ به سوال
کاشی زاده
9 سال پیش
0
0
از این پرمیشن استفاده کنید :
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
اگر جواب نداد از این دستور :
File myDir =newFile(getCacheDir(),"folderName");
myDir.mkdir();

پاسخ به سوال
atf
9 سال پیش
0
0
ابتدا مجوز زیر رو در مانیفست اضافه کنید
<uses-permissionandroid:name="android.permission.WRITE_INTERNAL_STORAGE"/>
سپس داخل کلاسی که قبل از ساخت دایرکتوری هست کد های زیر را قرار دهید
private void permissionsResult() { int hasWriteExternalStoragePermission = checkSelfPermission(Manifest.permission.WRITE_EXTERNAL_STORAGE); List<String> permissions = new ArrayList<String>(); if (hasWriteExternalStoragePermission != PackageManager.PERMISSION_GRANTED) { permissions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); } if (!permissions.isEmpty()) { requestPermissions(permissions.toArray(new String[permissions.size()]), REQUEST_CODE_SOME_FEATURES_PERMISSIONS); } }missions.add(Manifest.permission.WRITE_EXTERNAL_STORAGE); }
داخل onCreate
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { permissionsResult(); }
موفق باشید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .