Android: mkdirs () / mkdir () на внешнем хранилище возвращает false - PullRequest
31 голосов
/ 27 августа 2011

Я схожу с ума от этого:

Log.d("STATE", Environment.getExternalStorageState());
File f = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM), "work_data");
Log.d("PATH", f.getAbsolutePath());
if (!f.exists()) {
    Log.d("MAKE DIR", f.mkdirs() + "");
}

Выходной журнал выглядит так:

STATE     mounted
PATH      /mnt/sdcard/DCIM/work_data
MAKE DIR  false

Я убедился, что добавил правильное разрешение:

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

Но я не знаю, почему не удалось создать папку. Я также использовал mkdir() шаг за шагом, но результат тот же. Пожалуйста, помогите мне. Я так много погуглил и потратил как минимум 2 дня на эту глупость. Спасибо за вашу помощь !!

РЕДАКТИРОВАНИЕ:

Извините всех! Я добавил <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> в тег <application>. это была моя ошибка! Но спасибо всем за ответ.

Ответы [ 11 ]

0 голосов
/ 05 июня 2018

Я пытался создать набор подпапок во внешнем хранилище 'Test / Test1 / Test2', когда mkdirs () продолжал возвращать false.Оказывается, что «Тест» - это либо зарезервированное слово для папки в корне внешнего хранилища.Это было на Motorola G (XT1541) и может относиться и к другим устройствам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...