Почему бы не использовать DirectoryInfo.GetFiles
?
Я полагаю, что теперь довольно много времени уходит на выполнение выполняемой команды, а не кода .NET.dir
потребуется много времени, чтобы последовательно записать столько данных в поток.Затем вы используете String.Split
, который также захлебнется таким большим количеством данных.
Используя DirectoryInfo.GetFiles, вы сможете получить все имена файлов в одной строке (и вы также можете получить другиеинформация о файлах следующим образом):
var files = (new DirectoryInfo(path)
.GetFiles("*.*", SearchOption.AllDirectories)
.Select(fi => fi.Name);
Если вас действительно интересуют только имена файлов, вы можете использовать:
var fileNames = Directory.GetFiles(path, "*.*", SearchOption.AllDirectories);