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.