Home » Android » file – What is the difference between getDir and getFilesDir on Android?

file – What is the difference between getDir and getFilesDir on Android?

Posted by: admin April 23, 2020 Leave a comment

Questions:

I would like to save a picture in Internal Storage of my app, to make it private. So I did a little research and saw 2 ways to get the directory.

1.With getDir :

File dir = getDir(Environment.DIRECTORY_PICTURES, Context.MODE_PRIVATE);

2.With getFilesDir :

File dir = getFilesDir();

Which is best ? Which returns the location in Internal Storage ?

The way of writing files depends on the way you get your dir ? I am a bit lost since there are many ways to write files in Android.

How to&Answers:

getFilesDir() returns a File object to a directory that is private to your application only. When you use openFileOutput(String, int), the data you write is directly stored in this directory and is not accessible by any other application. It holds your application files.

getDir() enables you to create any file or directory in the internal memory, which is also accessible by other applications depending on the mode you create it. openFileOutput(String, int) will not work with the output of this so you will have to use other means of writing and reading files to deal with this directory or file. This is more used for creating custom files other than files only used by your application.