2 votes

Android File.mkdirs change Context.getFilesDir

C'est un problème lié à Android. Un appel à File.mkdirs peut modifier la valeur de Context.getFilesDir. J'ai exposé le problème de cette manière car je n'ai pas étudié tous les cas de test. J'ai été très surpris par ce résultat et j'ai mis en place un test simple qui confirme ce comportement.

String filesDir = context.getFilesDir().getAbsolutePath();
File newFile = new File(context.getFilesDir,"xxx/MyFile.txt");
newFile.getParentFile().mkdirs();
String newFilesDir = context.getFilesDir().getAbsolutePath();

Ce que vous verrez, c'est que le filesDir et le newFilesDir ne sont pas les mêmes. L'appel à mkdirs a changé l'emplacement. Je suis surpris par ce résultat car la documentation d'Android ne mentionne pas ce comportement. Quelqu'un a-t-il une explication valable sur la raison pour laquelle cela se produit, et comment gérer cela ? J'ai utilisé getFilesDir pour stocker du contenu et j'aime organiser ce contenu dans une arborescence de répertoires et il semble que vous ne devriez pas ajouter de répertoires dans filesDir.

0voto

user1506104 Points 1298

Il est parfaitement possible de créer un sous-répertoire à l'intérieur du répertoire de votre application via getFilesDir() y mkdirs() les commandes. Pour en savoir plus, cliquez ici : https://developer.Android.com/training/data-storage/files

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X