web-dev-qa-db-fra.com

Quelle est la différence entre getDir et getFilesDir sur Android?

Je voudrais enregistrer une image dans le stockage interne de mon application, pour la rendre privée. J'ai donc fait un peu de recherche et vu 2 façons d'obtenir le répertoire.

1.Avec getDir :

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

2.Avec getFilesDir :

File dir = getFilesDir();

Quel est le meilleur? Qui renvoie l'emplacement dans le stockage interne?

La façon d'écrire des fichiers dépend de la façon dont vous obtenez votre répertoire? Je suis un peu perdu car il existe de nombreuses façons d'écrire des fichiers sur Android.

28
cleroo

getFilesDir() renvoie un objet File dans un répertoire privé de votre application uniquement. Lorsque vous utilisez openFileOutput(String, int), les données que vous écrivez sont directement stockées dans ce répertoire et ne sont accessibles par aucune autre application. Il contient vos fichiers d'application.

getDir() vous permet de créer n'importe quel fichier ou répertoire dans la mémoire interne, qui est également accessible par d'autres applications selon le mode que vous créez. openFileOutput(String, int) ne fonctionnera pas avec la sortie de ceci, vous devrez donc utiliser d'autres moyens d'écrire et de lire des fichiers pour gérer ce répertoire ou fichier. Ceci est plus utilisé pour créer des fichiers personnalisés autres que des fichiers uniquement utilisés par votre application.

34
Erol