Я хотел бы получить массив с отсортированными путями к файлам. Мне удалось получить отсортированный массив с такими именами файлов:
fileList.addAll(Arrays.asList(curFolder.list()));
Collections.sort(fileList);
и я знаю о таком способе получения путей к файлам:
folder.listFiles()
Я также знаю, что могу сортировать все пути к файлам по имени или дате, но мне это не удалось. В конце я добавлю эти пути к моему адаптеру recyclerView:
FileManagerAdapter fileManagerAdapter = new FileManagerAdapter(this, (ArrayList<String>) fileList, curFolder.listFiles());
может быть, мне нужно получить путь к файлу на адаптере или что? Надеюсь вы мне поможете :)
@ADM, моя проблема в том, что я не могу сортировать File[] по именам, таким как мой массив списка файлов.
@ADM, не могли бы вы объяснить этот вопрос, пожалуйста, потому что я все еще не могу понять, как решить мою проблему?
Я решил свою проблему:
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]
И какой у вас здесь вопрос? Какая часть проблемная? Сортировка или адаптер?