Создание подпапки в папке files
Создаю приложение на Android и хочу чтобы в папке files на телефоне пользователя всегда при запуске приложения была папка files (типо проверка существует ли такая папка и если нет то создать ее в директории с data/com.appname.appname).
А потом определенные файлы (допустим картинки) сохранять туда.
Как это реализовать?
Дело в том что проверку существования папки я осуществил, но при попытке создать файл в папке /files/quizes/FileName.txt выходит ошибка:
Caused by: java.lang.IllegalArgumentException:
File /quizes/FileName.txt contains a path separator
Вот кусок кода отвечающий за создание файла:
String quizfileDir = "/quizes/" + quizfileName;
FileOutputStream fos = null;
try {
fos = openFileOutput(quizfileDir, MODE_PRIVATE);
Ответы (1 шт):
openFileOutput() не поддерживает подпапки. Если хотите свободную иерархию - используйте классы File и FileOutputStream, а путь к папке files получайте методом getFilesDir():
File quizesDir = new File(getFilesDir(), "quizes");
if (!quizesDir.exists()) { // если папка не существует
quizesDir.mkdirs(); // создаём её
// и записываем файл(ы)
File quizfile = new File(quizesDir, quizfileName);
try (FileOutputStream fos = new FileOutputStream(quizfile)) {
...
}
}