> имхо, проще легче и быстрей первый вариант(т.к. ненужно преходить по каталогам)Проще в реализации - да, но не легче в стадии выполнения.
Собсно говоря, ваш вопрос сводится к простому: что лучше - последовательный перебор или поиск в двоичном дереве?
Ответ зависит от реализации ФС, с которой вы работаете. Если файловая структура ФС содержит механизм индексирования имен файлов, то со стороны юзерленда "прямой перебор" в большой файлопомойке может оказаться эффективным за счет дерева в нижележащем уровне доступа. Но если ФС имена ищет прямым перебором, то тогда придется самому создавать дерево и в нем работать.
Разрешить ваши сомнения поможет натурный эксперимент. Наплодите в каталоге сто тыщ файлов по маске ХХХХХХ, и замеряйте время ста тыщ поисков заведомо несуществующего файла "ааааааа". Затем наплодите двести тыщ, и для них выполните те же сто тыщ поисков. И так до миллиона-двух файликов. Если у вас время выполнения ста тыщ поисков будет линейно расти от количества файлов, значит ваша ФС никак не оптимизирует поиск. Если нарисуется характерная sqrt-кривая, значит часть функций по оптимизации поиска ФС таки выполняет.
Но многие софты на это не полагаются, и для больших файлопомоищ организуют собственные иерархии каталогов. Тот же сквид.