[讨论]TreeView控件:加载大量数据时,运行速度的问题!
做一个类似Windows资源管理器左边的树型菜单,需要遍历硬盘中所有文件夹,然后用TreeView控件绑定每一个文件夹及子文件夹以及文件夹中的文件(每一个节点绑定一个文件夹名或文件名,树节点的层次结构和文件夹的层次一样),我使用递归遍历硬盘中的文件夹,然后绑定到节点。
如图:
---------------------------------------------------
-我的电脑
-C:[WinXp]
+Documents and Settings
-Program Files
+Common Files
+ComPlus Applications
+Internet Explorer
+Microsoft ActiveSync
+Movie Maker
+Windows
-D:[软件]
+Microsoft SQL Server
-Winamp5.0.1
+.dll
+Theme
-Skins
+Skin1
+Skin2
+Skin3
+Adobe
+Acrobat 7.0
+Photoshop 7.0
+Flash8.0
+Microsoft Office
+Microsoft Visual Studio 8
-E:[娱乐]
+Mp3
+流行经典
+外国歌曲
+摇滚
+爵士
+乡村音乐
+港台歌手
+刘德华
+张学友
+谭咏麟
+周杰伦
+邓丽君
+梁咏琪
+大陆歌手
-电影
+<李连杰>专辑
+<周星驰>专辑
+<成龙>专辑
+A计划
+红番区
+龙少爷
+尖峰时刻
+宝贝计划
+游戏
+魔兽争霸
+帝国时代
+CS1.6
+小游戏
+搞怪碰碰球
+经典街机游戏
+连连看
+拼图游戏
------------------------------------------------
程序做是做出来了,但是程序启动时很慢,我估计了一下,绑定TreeView控件大概需要20s左右的时间(我的电脑配置:主频2.66G,512M内存,120G硬盘),那太夸张了吧...
对于这个问题,我的另一个想法是,在TreeView控件加载数据时只夹在第一层的数据,即最初只加载几个驱动器盘符,然后点击驱动器节点时,再加载该驱动器下面包含的文件和文件夹,以后各层文件夹使用同样的方法来加载子文件和子文件夹,但是程序实现起来要比我之前的程序要复杂。(主要是要判断某一个文件夹是否包含有文件以及子文件夹,以确定该文件夹前面的符号是否是"+"号)
想请教各位,还有什么更好的解决方案没有?欢迎拍砖~~~~~~~~~~~~