Sandhu
Sandhu

Reputation: 141

Creating folder in the application directory

i have used getFilesDir() to create a folder in the application directory, it gives the path of the applicatoin directory as follows

/data/data/{my application package}/files

but when i use it to create a new folder using

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

i don't see any folder. Also when i access in ES Explorer the actual path of the application directory is

/Android/data/{my package name}/files

My question is how to create a folder in the application directory so that it can be deleted automatically on application uninstallation.

Upvotes: 5

Views: 7502

Answers (2)

Fahim
Fahim

Reputation: 12358

Use this by making a use of 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));

Upvotes: 1

Oleksii K.
Oleksii K.

Reputation: 5419

Use method Context.getDir() instead. You don't need to invoke mkdirs(), because getDir() will do it automatically.

Quote from the documentation:

Retrieve, creating if needed, a new directory in which the application can place its own custom data files. You can use the returned File object to create and access files in this directory. Note that files created through a File object will only be accessible by your own application; you can only set the mode of the entire directory, not of individual files.

Upvotes: 5

Related Questions