Измените свой метод немного вместо этого:
filename : 13842985.xml
directory : 842/985/13842985.xml # use the 6 last to create the directory name
Я предполагаю, что имена файлов несколько случайны. Эта схема создаст 1000 верхних папок, каждая из которых содержит 1000 подпапок. Начиная с последних цифр вместо первых, вы будете защищены от длинных имен файлов:
filename : 138429851234.xml
directory : 851/234/138429851234.xml
Надеюсь, это поможет!
Редактировать: если сначала хэшировать имя файла и использовать это число, вы избежите вырожденных случаев (например, изменяющихся только в начале).