日期:2014-05-19  浏览次数:20779 次

历遍所有文件夹,将文件结构加载到TreeView里面.用递归好慢啊,有没有更好的办法?
private   void   ShowFolderSchema()
{
if(LocalFolderPath   !=   string.Empty)
{
this.treeView1.Nodes.Clear();
this.treeView1.Nodes.AddRange(LoadDirectoryInfo(LocalFolderPath));
}
}

internal   TreeNode[]   LoadDirectoryInfo(string   folderPath)
{
DirectoryInfo   di   =   new   DirectoryInfo(folderPath);
DirectoryInfo[]   dis   =   di.GetDirectories();
TreeNode[]   tn   =   new   TreeNode[dis.Length];
for(int   i   =   0;i   <   dis.Length;   i++)
{
tn[i]   =   new   TreeNode(dis[i].Name);
tn[i].Nodes.AddRange(LoadDirectoryInfo(dis[i].FullName));
}
return   tn;
}

------解决方案--------------------
加一个Loading的等待提示,这样给用户的感觉程序是在运行,就可以了.
满足用户要求就可以了.也不用浪费太多脑细胞
------解决方案--------------------
采用动态打开的方式
第一次只读取二级目录
用户点节点的时候再展开
Windows的文件浏览器不就是这样吗?
------解决方案--------------------
采用动态打开的方式
第一次只读取二级目录
用户点节点的时候再展开
Windows的文件浏览器不就是这样吗?
同意
------解决方案--------------------
同意yucong(程序人生) ,我就是这样做的,winform更方便
------解决方案--------------------
我用winform,不觉得递归慢阿...
------解决方案--------------------
就像 前面几位说的
一级 一级的 读取tree数据