Проблемы с поиском эффективного способа получения имен папок / файлов / путей с дисков

Я пытался узнать, как создать клон Проводника 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;
    }

0 ответов

Другие вопросы по тегам