2012-05-16 4 views
2

Возможно ли создать каталог в каталоге. Для того, чтобы создать один каталог просто назвать это:Создание каталога во внутреннем хранилище android

File dir1 = getDir("dir1",Context.MODE_PRIVATE); 

Но как создать другой каталог в dir1?

это:

File dir2 =getDir("dir1"+"/"+"dir2",Context.MODE_PRIVATE); 

бросить исключение:

File dirFile = java.lang.IllegalArgumentException: File app_dir1/dir2 contains a path separator 

Спасибо.

ответ

3

Context.getDir() представляется уникальным для Android способом абстрагирования процесса создания каталога в частной области хранения - это не общий способ создания каталогов в целом.

Чтобы сделать свой подкаталог ребенка, вы должны использовать обычные методы Java, такие как

File dir2 =new File(dir1, "dir2").mkdir(); 

Обратите внимание, что первый параметр здесь является объект File, представляющий первый каталог, созданный, а не имя.

Возможно, вы захотите впоследствии установить разрешения для этого каталога.

предупреждение: метод тестировался

+0

@Marky изменения этого к mkdirs() метод не нужен - потому что родительский каталог как известно, существует, MkDir() является достаточным. –

3

Использование Context.getDir (имя String, режим INT) для создания или доступа к каталогам во внутренней памяти. Цитата из документации:

File mydir = context.getDir("mydir", Context.MODE_PRIVATE); //Creating an internal dir; 
File fileWithinMyDir = new File(mydir, "xyzDir"); //Getting a file within the dir. 
fileWithinMyDir.mkDir; 
+1

Спасибо за это, работал идеально для меня. Я создаю свое первое имя каталога как «TEST», но оно создается как «app_TEST». Как избежать создания «app_» перед именем моего каталога? –

+0

И проверяя, существует ли файл выше или нет, я проверяю: 'String path = getApplicationContext(). GetFilesDir(). GetAbsolutePath() +"/"+" app_TEST ";' 'Файл file = new Файл (путь); ' Он ищет в' data/data/com.myapp/files/app_TEST' Когда создается каталог «файлы»? Следовательно, my file.exists() является ложным. –

+0

@ShrutiDasgopal Получили ли вы решение предотвратить приложение_ перед именем каталога? – akshay7692

Смежные вопросы