Почему я получаю сообщение "Родительский каталог файла недоступен для записи?" - PullRequest
0 голосов
/ 23 ноября 2011

Я просмотрел множество постов, но до сих пор не получил ответа. После добавления WRITE_EXTERNAL_STORAGE и проверки, что SD-карта доступна для записи и монтирования, я все равно получаю «Родительский каталог файла не доступен для записи» Я использую eclipse и эмулятор и нацеливаю SdkVersion = "7".

Как мне записать на SD-карту?

Пример кода следующий:

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

    checkSDStatus();
    .
    .
    .

    File sdCardRoot = Environment.getExternalStorageDirectory();

    // Check state of SD card
    String sdState = Environment.getExternalStorageState();
    Log.d("--- state ---", sdState);

    File dir = new File (sdCardRoot.getAbsolutePath() + "/download");
    dir.mkdirs();

    File file = new File(dir, fileName);

    .
    .
    .

    private void checkSDStatus(){
        boolean mExternalStorageAvailable = false;
        boolean mExternalStorageWriteable = false;
        String state = Environment.getExternalStorageState();

        if (Environment.MEDIA_MOUNTED.equals(state)) {
            mExternalStorageAvailable = mExternalStorageWriteable = true;
            Log.d("-- sd card --", "-- card writable --");
        } else if (Environment.MEDIA_MOUNTED_READ_ONLY.equals(state)) {
            mExternalStorageAvailable = true;
            mExternalStorageWriteable = false;
            Log.d("-- sd card --", "-- card read only --");
        } else {
            mExternalStorageAvailable = mExternalStorageWriteable = false;
            Log.d("-- sd card --", "-- card unvailable --");
        }
    }

1 Ответ

0 голосов
/ 30 ноября 2011

Хорошо, я отвечу на мой вопрос для других.

После добавления в файл манифеста несколько раз ранее мне было нечего терять, поэтому я скопировал другую версию и добавил ее в манифест под существующимразрешение.

Права доступа были идентичны глазу, но я удалил свой старый и использовал новый, который скопировал.

Я перезапустил приложение, и оно заработало !!!Возможно, на диске была ошибка, файл манифеста не был прочитан по какой-то причине или как-то еще - по крайней мере, теперь он работает!

Если кто-нибудь знает, почему я обязательно хотел бы услышать причину этой проблемы!

...