На самом деле, именно так работали каталоги Unix. Каталог действительно был простым файлом, как и любой другой, и вы считали плоский массив (IIRC) 16-байтовых записей, содержащих 4-байтовый номер индекса и 12-байтовое имя файла. opendir () и readdir () были просто библиотечными функциями этого интерфейса.
Но начиная с введения Sun VFS в середине 80-х, больше не было только одной файловой системы. Вместо этого opendir и readdir стали системными вызовами, а способность читать «сырое» содержимое каталога исчезла.
В любом случае, авторы файловой системы очень (!) Усердно работали, чтобы сделать свой код быстрым. Внешне вы ничего не можете сделать, чтобы «ускорить» обратный путь в каталогах на этом уровне. Я думаю, попробуйте использовать меньше файлов.