بروز خطا
[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 پاسخ وجود دارد.
پاسخ به سوال
کاشی زاده
10 سال پیش
0
0
از این پرمیشن استفاده کنید :
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE"/>
اگر جواب نداد از این دستور :
File myDir =newFile(getCacheDir(),"folderName");
myDir.mkdir();
پاسخ به سوال
atf
10 سال پیش
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();
}
موفق باشید
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .