2015-01-06 3 views
0

Вот вещи, которые я сделал:Невозможно создать каталог, но файлы

<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; 
} 
+0

Попробуйте просто "моя_папка /" вместо "/ моя_папка /" Это может или может не помочь, но стоит проверить – Steven

ответ

0

Заменить Environment.getExternalStorageDirectory() с каталогами, а также "/ MyFolder" будет "/ моя_папка"

public void createMyFolder(){ 
     File directory = new File(Environment.getExternalStorageDirectory().getPath() + "/myfolder"); 
     directory.mkdir(); //I had also tried mkdirs() 

     File file= new File(directory.getPath() + "/t1.dat"); 
     try { 
      file.createNewFile(); 
     } catch (IOException e) {} 
    } 
Смежные вопросы