我一直在尝试通过使用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;
}