我用了Explorer那么久,都没发现:打开它后,它就使劲的全部读完文件再Show出来
解决方案 »
- delphi 调用指定路径的C# dll
- 如何依据CreateProcess产生的进程ID得到主窗体的句柄?
- 求fastreport3.0每条记录自动生成序号排列
- 谁能提供SynEdit控件 FOR D7 可以成功编译的代码
- 使用TIdTCPClient连接server时界面总有冻结的现象,求助!
- 查询问题
- 已经用exp命令导出数据,我想导入另外一台服务器,那台机器上已经安装了oracle,并且已经有数据库服务了,接下来我该怎么办?在线等待,
- 什么才是真正的COM、DCOM、ActiveX编程?
- SqlServer-BCP程序讨论.
- 我不知道怎么开始学
- 谁用过robert算子?能讲讲是什么意思?
- 10台机器以内的局域网,用2层好还是3层好?
win32api里也只有findfirstfile,findnextfile这样的函数,
delphi也是封装了他们,这是何故?????!!!!!
windows绝对不会用递归算法
目录1(100多文件) 目录2(100多文件) 目录3(2000左右)
堆栈非递归 1.1s 1.1s 11.3s
递归 1.2s 1.3s 9.0s
这是经过多次实验得来得,尽量排除了外界干扰,可还是让人晕倒。
:(:(:(:(:(
目录1(100多文件) 目录2(100多文件) 目录3(2000左右)
堆栈非递归 0.4s 0.4s 0.5s
递归 0.7s 0.7s 0.8s
确实递归比较慢
而是shgetfileinfo和动态数组调整大小上,我得这段程序大概是这样:
findfirst
if 子目录 then 递归 or 进栈
if 文件 then
begin
setlength(数组); //因为不知道能找到多少文件
数组[x].filename:= SearchRec.Name;
....
shgetfileinfo(....); //得到文件的类型和图标
end
findnext
findclose
问题是setlength和shgetfileinfo的效率低下,如何解决?
可有高手肯回答?谢谢!