Yo hice algo parecido no se si es tu caso
Lo que paso fue que en una red habian miles de carpetas todos con nombres diferentes, sus nombres son numeros, la constante que tenian esas carpetas era un rango, como en esta imagen que pongo:
Como puedes notar las carpetas van de 500 en 500, y es que cada carpeta contiene archivos que tienen de nombre un numero dentro de su rango, ejemplo, quiero buscar un archivo que se llama 470652, entonces solo me importa los primeros 3 numeros, los otros los busco por rangos para encontrar la ruta. Al finalizar, mi programa efectivamente encuentra la carpeta
470500_470999. No se si me entendiste o bien si este caso es parecido al tuyo.