Проблемы с поиском эффективного способа получения имен папок / файлов / путей с дисков
Я пытался узнать, как создать клон Проводника Windows, используя TreeView для хранения всех имен папок и файлов и путей.
Я просмотрел много примеров, и все они использовали рекурсию, что нормально, однако я пытался получить огромное количество имен папок / файлов / путей (300k+), и это становится довольно медленным (занимает несколько минут, чтобы получить все данные и положить его в TreeView).
Ниже приведен метод рекурсии, который я использую для получения имен папок и файлов и путей:
public static TreeNode CreateDirectoryNode(DirectoryInfo directoryInfo, TreeNode parentNode = null)
{
var directoryNode = new TreeNode(directoryInfo.Name);
foreach (var directory in directoryInfo.GetDirectories())
{
parentNode = new TreeNode(directory.Name);
parentNode.Tag = directory.FullName;
directoryNode.Nodes.Add(CreateDirectoryNode(directory, parentNode));
}
foreach (var file in directoryInfo.GetFiles())
{
TreeNode tnFile = new TreeNode(file.Name);
tnFile.Tag = file.FullName;
directoryNode.Nodes.Add(tnFile);
}
return directoryNode;
}