Кажется, mkdirs не работает на SDCard в onCreate of Activity - PullRequest
0 голосов
/ 25 августа 2011

Я использую метод для создания структуры каталогов, используя mkdirs в onCreate действия.Несмотря на то, что он возвращает true и все признаки того, что он должен работать, каталоги все еще не создаются (или, возможно, не видны) на SD-карте.В чем может быть проблема?

Обновление: 1. Я дал android.permission.WRITE_EXTERNAL_STORAGE 2. Метод отлично работает, если вызывается из любого другого места, кроме onCreate, то есть создается структура каталога.

public static void createNoMediaFile() {
    Log.v("myreader",">>>>>>>>>>>>>>> Entered createNoMediaFile");
    File papermag=new File(DigitalEditionConstant.PAPERMAG_PATH);
    boolean isdircreated=papermag.mkdirs();
    Log.v("myreader",">>>>>>>>>>>>>>>>Directory setup: "+isdircreated);
    File noMediaFile=new File(DigitalEditionConstant.DIR_PATH+".nomedia");
    if(!noMediaFile.exists()){
        try {
            noMediaFile.createNewFile();
            Log.v("myreader",">>>>>>>>>>>>>>>>>>> Created File: "+noMediaFile.toString());
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

Все пути к каталогам и т. Д. Проверены и исправны.Этот метод вызывается из onCreate действия в моем проекте

Ответы [ 4 ]

0 голосов
/ 25 августа 2011

Используйте команду "adb push", чтобы проверить, можете ли вы скопировать каталог на SD-карту (чтобы определить, нет ли проблем с SD-картой)

0 голосов
/ 25 августа 2011

вот простой код

File wallpaperDirectory = new File(Environment.getExternalStorageDirectory().toString()+"/FolderName");
wallpaperDirectory.mkdirs();

добавить это разрешение в свой список ...

разрешение WRITE_EXTERNAL_STORAGE

0 голосов
/ 25 августа 2011

имя dir начинается с точки?DDMS и большинство файловых менеджеров не будут отображать эти папки ... но они есть.

Вы добавили разрешение для манифеста:

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

Если устройство, подключенное к USB, заблокирует доступ кSD из кода также.

0 голосов
/ 25 августа 2011

вы добавили разрешение WRITE_EXTERNAL_STORAGE в свой файл манифеста?см здесь

...