Как создать каталог автоматически на SD-карте

Я пытаюсь сохранить свой файл к следующему местоположению
FileOutputStream fos = new FileOutputStream("/sdcard/Wallpaper/"+fileName); но я получаю исключение java.io.FileNotFoundException
Однако, когда я поместил путь как "/sdcard/" работает.

Теперь я предполагаю, что не могу создать каталог автоматически этот путь.

Может кто-то предлагать, как создать a directory and sub-directory использование кода?

184
задан user55924 14 July 2017 в 01:40
поделиться

1 ответ

Если вы создаете объект файл , который оборачивает каталог верхнего уровня, вы можете вызвать его MKDIRS () метод для создания всех необходимых каталогов. Что-то вроде:

// create a File object for the parent directory
File wallpaperDirectory = new File("/sdcard/Wallpaper/");
// have the object build the directory structure, if needed.
wallpaperDirectory.mkdirs();
// create a File object for the output file
File outputFile = new File(wallpaperDirectory, filename);
// now attach the OutputStream to the file object, instead of a String representation
FileOutputStream fos = new FileOutputStream(outputFile);

Примечание: может быть разумно использовать Environment.getexternalstorageirectory () для получения каталога «SD-карта», поскольку это может измениться, если телефон приходит, который имеет что-то другое, чем SD-карта (например, встроенная вспышка, A'LA iPhone). В любом случае, в любом случае вы должны помнить, что вам нужно проверить, чтобы убедиться, что он на самом деле там, поскольку SD-карта может быть удалена.

Обновление: Поскольку API Уровень 4 (1.6) Вам также придется запросить разрешение. Что-то вроде этого (в манифесте) должно работать:

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
442
ответ дан 23 November 2019 в 05:55
поделиться
Другие вопросы по тегам:

Похожие вопросы: