找到从驱动器获取文件夹/文件名/路径的有效方法的问题

时间:2015-08-30 17:05:20

标签: c# treeview

我一直在尝试通过使用TreeView来保存所有文件夹和文件名和路径来学习如何创建Windows资源管理器克隆。

我查了很多例子,他们都使用递归,这很好,但是,我一直在尝试获取大量的文件夹/文件名/路径(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 个答案:

没有答案