Создание подпапки в папке files

Рейтинг: -2Ответов: 1Опубликовано: 25.03.2023

Создаю приложение на 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);

Ответы

▲ 0Принят

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)) {
        ...
    }
}