Re: Directory enumerate files async
От: Pavel Dvorkin Россия  
Дата: 13.11.24 14:25
Оценка: 6 (1)
Здравствуйте, HotDog, Вы писали:

HD>Есть папки с несколькими миллионами файлов внутри. Не спрашивайте почему или как, это пишет левая прога, которая не в наших руках.

HD>Нужно показывать содержимое этих директориев.

Я бы немного с другой стороны подошел бы.

Где показывать ? Сколько в окне показывать (не миллион же!). И как показывать — последовательно или в произвольном порядке, то есть с произвольным скроллингом ?

Если последовательно, то можно использовать для ListView или DataGridView виртуальный режим.

Начинаешь Directory.EnumerateFiles в отдельном потоке, заносишь данные в какой-то ArrayList с большой начальной емкостью (чтобы избежать насколько можно переаллокаций) и сразу же показываешь то, что поместилось в окне. Пока пользователь листает вперед, ArrayList дозаполняется.

Увы, если надо показывать в произвольном порядке, это не пройдет — там лишь IEnumerable.
With best regards
Pavel Dvorkin
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.