Как получить отсортированный массив с путями файлов Android? - PullRequest
0 голосов
/ 22 апреля 2019

Я хотел бы получить массив с отсортированными filePaths. Мне удалось получить отсортированный массив с именами файлов, как это:

fileList.addAll(Arrays.asList(curFolder.list()));
Collections.sort(fileList);

и я знаю о таком способе получения путей к файлам:

folder.listFiles()

Я также знаю, что могу отсортировать все пути к файлам по имени или дате, но мне не удалось это сделать. В конце я добавлю следующие пути к моему адаптеру recyclerView:

FileManagerAdapter fileManagerAdapter = new FileManagerAdapter(this, (ArrayList<String>) fileList, curFolder.listFiles());

может быть, мне нужно получить путь к файлу на адаптере или как? Я надеюсь, что вы мне поможете:)

1 Ответ

0 голосов
/ 22 апреля 2019

Я решил свою проблему:

File[] files = curFolder.listFiles();

Arrays.sort(files, (f1, f2) -> {
if (f1.isDirectory() && !f2.isDirectory()) {
return -1;
} else if (!f1.isDirectory() && f2.isDirectory()) {
return 1;
} else {
return f1.compareTo(f2);
}
});

и в результате:

[/storage/emulated/0/Alarms, /storage/emulated/0/Android, /storage/emulated/0/DCIM, /storage/emulated/0/Download, /storage/emulated/0/Jobnetzwerk, /storage/emulated/0/Movies, /storage/emulated/0/Music, /storage/emulated/0/Notifications, /storage/emulated/0/Pictures, /storage/emulated/0/Podcasts, /storage/emulated/0/Ringtones]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...