Самый быстрый/безопасный поиск/анализ файлов?

На c:у меня есть десятки тысяч файлов *.foobar. Они находятся в самых разных местах (например, в подкаталогах). Эти файлы имеют размер примерно от 1 до 64 КБ и имеют открытый текст.

У меня есть класс Foobar(string fileContents), который строго типизирует эти .foobarфайлы.

Моя задача — получить список всех файлов *.foobarна c:, представленных в виде массива объектов Foobar. Какой самый быстрый способ сделать это?

Мне интересно узнать, есть ли лучший способ (несомненно), чем мой первый подход, который следует, и есть ли у этого моего подхода какие-либо потенциальные проблемы (например, проблемы параллелизма ввода-вывода, вызывающие исключения?):

var files = Directory.EnumerateFiles
                (rootPath, "*.foobar", SearchOption.AllDirectories);

Foobar[] foobars = 
(
    from filePath in files.AsParallel()
    let contents = File.ReadAllText(filePath)
    select new Foobar(contents)
)
.ToArray();
5
задан svick 17 March 2012 в 04:04
поделиться