Вот вещи, которые я сделал:Невозможно создать каталог, но файлы
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
и
public void createMyFolder(){
File directory = new File(Environment.getExternalStorageDirectory().getPath() + "/myfolder/");
directory.mkdir(); //I had also tried mkdirs()
File file= new File(Environment.getExternalStorageDirectory().getPath() + "/t1.dat");
try {
file.createNewFile();
} catch (IOException e) {}
}
я тестировал 3-х устройств и один из них бросил исключение:
java.io.IOException: Cannot create dir /mnt/sdcard/myfolder
t1. который был успешно создан в/mnt/sdcard /, но в моей папке не было.
Устройство Xperia Ion с Android версии 4.0.4. Что в этом плохого и как я могу это исправить?
Edit: Я пытался создать папки некоторых приложений, таких как файловый менеджер. И они также не смогли создать, хотя SD-карта доступна для записи и чтения. Я думаю, что у моего телефона есть некоторые «защиты», которые не позволяют мне создавать папки в SD-карте. Но смешно, что мой телефон позволяет мне создавать файлы.
public boolean isExternalStorageWritable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state)) {
return true;
}
return false;
}
/* Checks if external storage is available to at least read */
public boolean isExternalStorageReadable() {
String state = Environment.getExternalStorageState();
if (Environment.MEDIA_MOUNTED.equals(state) ||
Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
return true;
}
return false;
}
Попробуйте просто "моя_папка /" вместо "/ моя_папка /" Это может или может не помочь, но стоит проверить – Steven