Android создает папки в вопросе внутренней памяти - PullRequest
4 голосов
/ 15 ноября 2011

У меня небольшая проблема с созданием папок для моего приложения во внутренней памяти.Я использую этот кусок кода:

    public static void createFoldersInInternalStorage(Context context){
    try {

        File usersFolder = context.getDir("users", Context.MODE_PRIVATE);
        File fileWithinMyDir = new File(usersFolder, "users.txt"); //Getting a file within the dir.
        FileOutputStream out = new FileOutputStream(fileWithinMyDir); //Use the stream as usual to write into the file.

        File dataFolder = context.getDir("data", Context.MODE_PRIVATE);
        File fileWithinMyDir2 = new File(dataFolder, "data.txt"); //Getting a file within the dir.
        FileOutputStream out2 = new FileOutputStream(fileWithinMyDir2); //Use the stream as usual to write into the file.

        File publicFolder = context.getDir("public", Context.MODE_PRIVATE);
        File fileWithinMyDir3 = new File(publicFolder, "public.txt"); //Getting a file within the dir.
        FileOutputStream out3 = new FileOutputStream(fileWithinMyDir3); //Use the stream as usual to write into the file.

    } catch(FileNotFoundException e){
        e.printStackTrace();
    }
}

Таким образом, папки создаются, но перед их именем есть начало "app_": app_users, app_data, app_public.Есть ли способ создать папки с именем, данным мной?И еще один вопрос: я хочу сначала создать папку Documents, а затем все остальные папки "Data, Public, Users" на ней .... И последний вопрос: как мне указать правильный путь к папке, если я хочу создать файл в Documents/Users/myfile.txt во внутренней памяти?

Заранее спасибо!

Ответы [ 2 ]

2 голосов
/ 15 ноября 2011

Вы можете использовать это:

File myDir = context.getFilesDir();
String filename = "documents/users/userId/imagename.png";
File file = new File(myDir, filename);
file.createNewFile();
file.mkdirs();
FileOutputStream fos = new FileOutputStream(file);
fos.write(mediaCardBuffer);
fos.flush();
fos.close();
1 голос
/ 15 ноября 2011

Есть ли способ создать папки с указанным мной именем?

Используйте getFilesDir() и файловый ввод / вывод Java вместо getDir().

Как указать правильный путь к папке, если я хочу создать файл в Documents / Users / myfile.txt во внутренней памяти?

Используйте getFilesDir() и файловый ввод / вывод Java, например, конструктор File, который принимает File и String для сборки пути.

...