Получение содержимого корневого каталога - PullRequest
0 голосов
/ 11 февраля 2019

У меня есть приложение с данными, сохраненными (предыдущим разработчиком) в пользовательских каталогах: context.getDir(userLoginHash, Context.MODE_PRIVATE).И нет списка пользователей - когда пользователь входит в приложение пытается загрузить содержимое своего каталога (или создает новый), когда пользователь выходит из каталога, остается на устройстве.

И теперь я не хочу чиститьданные.Поэтому мне нужно получить список таких папок, но я не нашел для этого способа.Это сильно смутило меня, потому что задача выглядит слишком очевидной.Я что-то пропустил?Как я могу это сделать?

1 Ответ

0 голосов
/ 11 февраля 2019

Поэтому мне нужно получить список таких папок, но я не нашел способ для этого

Для этого нет ничего встроенного.

Как я могу это сделать?

Начать с:

File motherOfAllUserDirectoriesAndOtherStuff = getDir("whatever", Context.MODE_PRIVATE).getParentFile();

Вы можете перебирать все содержимое motherOfAllUserDirectoriesAndOtherStuff с помощью стандартного ввода-вывода Java (например,listFiles()).Однако имейте в виду, что не все в motherOfAllUserDirectoriesAndOtherStuff будут вашими пользовательскими каталогами.SharedPreferences, базы данных, другие файлы и т. Д. Также будут там.Вам нужно будет разработать алгоритм, который может определить, является ли подкаталог motherOfAllUserDirectoriesAndOtherStuff одним из ваших пользовательских каталогов или нет, возможно, исходя из того, как выглядит хеш.

Если вы когда-нибудь сможете переписать это, создайте свойсобственный корень и поместите туда пользовательские каталоги.IOW:

File userDir = new File(getDir("myAppRoot", Context.MODE_PRIVATE), userLoginHash);
...