Я ищу эффективный по времени метод для анализа списка файлов в дереве. Может быть сотни миллионов путей к файлам.
Грубое решение проблемы заключается в разделении каждого пути при появлении разделителя каталогов и обходе дерева, добавляемого в записи каталога и файла, путем сравнения строк, но это будет исключительно медленно.
Входные данные обычно сортируются в алфавитном порядке, поэтому список будет выглядеть примерно так:
C: \ Users \ Aaron \ AppData \ Amarok \ AFile
C: \ Users \ Aaron \ AppData \ Amarok \ Afile2
C: \ Users \ Aaron \ AppData \ Amarok \ Afile3
C: \ Users \ Aaron \ AppData \ Blender \ alibrary.dll
C: \ Users \ Aaron \ AppData \ Blender \ and_so_on.txt
Исходя из этого порядка, моя естественная реакция - разделить списки каталогов на группы ... каким-то образом ... перед выполнением медленного сравнения строк. Я действительно не уверен. Буду признателен за любые идеи.
Редактировать: Было бы лучше, если бы это дерево было лениво загружено сверху вниз, если это возможно.