2015-03-10 1 views
1

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

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

но когда я использую его, чтобы создать новую папку, используя

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

я не вижу папку. Кроме того, когда я получить доступ в ES Проводнике фактический путь к каталогу приложений является

/Android/данные/{мое имя пакета}/файлы

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

+0

@ СП1 я проверил в папке, а также попытался сохранить файл в этой папке, а затем извлечение его, не удалось, но с getExternalStorageDirectory() это было Возможно, – Sandhu

ответ

1

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

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

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

+0

попытался использовать его, RunTimeException – Sandhu

+0

Не могли бы вы вывести вывод 'logcat'? –

+0

'03-10 13: 28: 29.439: E/AndroidRuntime (11988): FATAL EXCEPTION: main 03-10 13: 28: 29.439: E/AndroidRuntime (11988): Процесс: blr.infovita.buzzpharma, PID: 11988 03-10 13: 28: 29.439: E/AndroidRuntime (11988): java.lang.RuntimeException: не удается запустить Activity ComponentInfo {OActivity}: java.lang.IllegalArgumentException: Файл app_/data/data/m.package/files/MYFOLDER содержит разделитель пути ' – Sandhu

0

Используйте это, делая использование 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));