Как индексировать - прочитать сведения об одном файле -> внести информацию в базу данных (mysql) -> следующий файл -> внести информацию...
Для сбора всей информации о файле используется функция stat(filename). Вывод в массив (с помощью print_r($arr) можно посмотреть содержимое массива).
Соответственно, поиск будет выполнять mysql. Делаем запрос вроде mysql_query("SELECT * FROM имя_таблицы WHERE filename='имя_файла.txt' "); или по другим полям. Будет гораздо быстрее и эффективнее, чем держать в памяти всю структуру в виде массива. Массив, кстати, подходит, просто многоуровневый надо сделать.
А вообще, не надо доводить файловую систему до такого состояния. 10 тысяч файлов в 1 папке - это глупость. Создавайте каждый месяц / неделю / день новую папку и кладите файлы в неё. Это значительно снизит нагрузку на серверную ОС.
ASP - язык программирования для веб от Microsoft. Используется с веб-сервером IIS. ASPX - откомпиленный ASP. ASP.net - дальнейшее развитие ASP. Язык представляет собой что-то вроде VisualBasic'а. Но PHP мне нравится больше
Часть заданных вопросов я не понял, поэтому, возможно, ответил не на те, которые надо =^_^'=