Чтобы создать каталог на память первичного хранения телефона (как правило, внутренней памяти) вы должны использовать следующий код. Обратите внимание, что ExternalStorage в Environment.getExternalStorageDirectory()
не обязательно относится к SDCARD, она возвращает память телефона первичного хранения
File mediaStorageDir = new File(Environment.getExternalStorageDirectory(), "MyDirName");
if (!mediaStorageDir.exists()) {
if (!mediaStorageDir.mkdirs()) {
Log.d("App", "failed to create directory");
return null;
}
}
каталог, созданный с помощью этого кода будет виден пользователю телефона. Другой метод (как в принятом ответе) создает каталог в местоположении (/data/data/package.name/app_MyDirName), поэтому обычный пользователь телефона не сможет легко получить к нему доступ, и поэтому вы не должны использовать его для хранения видео/фото и т.д.
вам нужны права, в AndroidManifest.xml
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_INTERNAL_STORAGE" />
Я думаю, что проверка здесь не нужна. Основываясь на документации: «Каталог будет создан, если он еще не существует». – Paul
if (! Mydir.exists) должно быть ** if (! Mydir.exists()) ** –
как вы затем добавляете файл в этот конкретный каталог? –