Я использовал getFilesDir () для создания папки в каталоге приложения, он дает путь к каталогу приложения следующим образом

/ data / data / {мой пакет приложения} / файлы

Но когда я использую его для создания новой папки, используя

File folder = new File(getFilesDir()
            + "/MyFolder");
    if (!folder.exists()) {
        folder.mkdir();
    }

Я не вижу ни одной папки. Также, когда я открываю ES Explorer , фактический путь к каталогу приложения

/ Android / data / {имя моего пакета} / files

У меня вопрос, как создать папку в каталоге приложения, чтобы ее можно было автоматически удалить при удалении приложения.

4
Sandhu 10 Мар 2015 в 10:16

2 ответа

Лучший ответ

Используйте метод Context.getDir() вместо этого. Вам не нужно вызывать mkdirs(), потому что getDir() сделает это автоматически.

Цитата из документации:

Получите, создав, если необходимо, новый каталог, в который приложение может разместить свои собственные файлы данных. Вы можете использовать возвращенный объект File для создания файлов в этом каталоге и доступа к ним. Обратите внимание, что файлы, созданные с помощью объекта File, будут доступны только для вашего собственного приложения; вы можете установить режим только для всего каталога, а не для отдельных файлов.

5
Oleksii K. 10 Мар 2015 в 07:43

Используйте это, используя getDir()

File dir = ctx.getDir("my_sub_dir", Context.MODE_PRIVATE);
            File newfile = new File(topDirFile.getAbsolutePath() + File.separator + "new_file_name");
            newfile.createNewFile();
            BufferedOutputStream fout = new BufferedOutputStream(new FileOutputStream(newfile));
1
Fahim 10 Мар 2015 в 08:18