Фон:
У меня есть приложение, которое нужно запускать на клиентах, чьи установленные .NET-платформы варьируются от 2.0 до 4.5. Это приложение должно иметь возможность перечислять и выполнять операции с большим количеством файлов (более 200 тыс. Дискретных файлов в отдельных случаях).
Чтобы создать индекс файлов, приложение в настоящее время использует System.IO.DirectoryInfo.GetFiles(). Это происходит при поражении производительности, так как компоненту обработки приходится дожидаться индексации всего дерева Path до его начала работы. Из-за некоторых архаичных ленточных многопользователей и некоторых плохо написанных прошивок, перемещение некоторых каталогов может приводить к чтению на лентах - время обработки от десятков секунд до десятков минут.
.NET 4.0 предоставляет метод System.IO.Directory.EnumerateFiles(Path), который облегчает эту проблему. Тем не менее, только несколько небольших консолей были обновлены до 4.0+, и наши просьбы о модернизации были встречены с враждебностью.
Вопрос:
Можно ли реализовать методы как для GetFiles, так и для EnumerateFiles в одном бинарном файле? Фактически, это будет единственный бинарный адрес, предназначенный для .NET 2.0, с возможностью вызова метода .NET 4.0, если во время выполнения было определено, что платформа 4.0 доступна.
Перед тем, как это было сказано: смена даттеров не является вариантом для нашего клиента. Я пробовал. Я когда-нибудь пробовал.