Как раскидать файлы по папкам?
Элементарно.
Считаем хэш файла и записываем в папку по первм символам хэша.
Например хэш D41D8CD98F00B204E9800998ECF8427E значит файл пишем в папку D
В итоге файлы будут раскиданы по шестнадцати папкам с именами от 0 до F
Или пишем файла в папку D и подпапку 4.
В итоге файлы будут раскиданы по шестнадцати папкам с именами от 0 до F и в каждой папке будет шестнадцать вложенных папок.
Или можно записать в папку D4 тогда файлы будут раскиданы по 256папкам.
В общем по первым буквам хэша.
Поскольку хэш сущность псевдослучайная, то распределение по папкам будет достаточно равномерным.
Такой подход используется во многих системах хранения данных.