Android File.mkdirs меняет Context.getFilesDir - PullRequest
2 голосов
/ 07 июля 2019

Это проблема с Android. Вызов File.mkdirs может изменить значение Context.getFilesDir. Я изложил проблему таким образом, так как я не исследовал все контрольные примеры. Я был очень удивлен этим результатом и собрал простой тест, который подтвердил это поведение.

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

То, что вы увидите, это то, что filesDir и newFilesDir не совпадают. Звонок в mkdirs изменил местоположение. Я удивлен этим результатом, так как в документации Android такое поведение не упоминается. У любого есть какое-то веское объяснение того, почему это происходит, и как с этим бороться. Я использовал getFilesDir в качестве места для хранения контента, и мне нравится организовывать этот контент в дереве каталогов, и похоже, что вам не следует добавлять каталоги в filesDir.

1 Ответ

0 голосов
/ 07 июля 2019

Прекрасно создать подкаталог в каталоге приложения с помощью команд getFilesDir() и mkdirs().Узнайте больше здесь: https://developer.android.com/training/data-storage/files

...