首页
社区
课程
招聘
[求助] 如何模拟杀软的扫描滚动条进度?
发表于: 2013-9-21 13:54 6572

[求助] 如何模拟杀软的扫描滚动条进度?

2013-9-21 13:54
6572
现在需要实现某个功能,和杀软扫描时的进度条相似。比方说360杀毒,可以选择一个文件夹,如D:\test文件夹,扫描时开始有滚动条,文件被扫描完后滚动条正好走完。既然要操作滚动条,就要设置滚动条的范围,那么就要知道这个文件夹大小,然后,扫描一个文件,设置一下滚动条的setpos,那么这就有一个问题了,点击扫描开始后,就需要先得到文件夹的大小,但是呢,网上获取文件夹大小用的方法都是遍历这个文件夹,那么这就有一个问题了,某一个文件夹很大,在点扫描后,要先获取文件夹大小,那么,这就要费好长时间,等计算出来后,再多线程扫描文件,感觉不可能是这样的,请问,这些杀软用的是什么方法?(先计算文件夹大小,再扫描还是????),求指点。。。
貌似获取大小速度有点慢,那么获取文件夹内文件个数应该比较快了,只是这个也要遍历两次,杀软用的绝对不是这个方法。求高手指点。

[招生]科锐逆向工程师培训(2024年11月15日实地,远程教学同时开班, 第51期)

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 220
活跃值: (117)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
2
都是遍历。。。只不过是时机问题
2013-9-21 14:09
0
雪    币: 180
活跃值: (80)
能力值: ( LV3,RANK:30 )
在线值:
发帖
回帖
粉丝
3
杀软通常是按盘来扫描的吧。可以一开始就把整个卷的已用空间记录下来。然后对比。
如果是按文件夹查杀那就另当别论。
2013-9-21 14:26
0
雪    币: 62
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4
对于直接硬盘的扫描,这个找到了方法,文件夹不知道怎么弄的。
2013-9-21 14:44
0
雪    币: 128
活跃值: (2788)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
可以逆一下
2013-9-21 14:53
0
雪    币: 468
活跃值: (52)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
如果扫描整个文件佳需要2秒以上时间,那么在2秒内模拟显示进度条,进度条百分比数字不要求精确,自己估一下不就得了,模拟显示个1%,或者2%,等2秒以后,整个文件佳扫描完了,再精确显示百分比嘛。
2013-9-21 15:06
0
雪    币: 62
活跃值: (1005)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
文件夹里还有别的文件夹和文件,如果想使用进度条,不得先设置它的范围吗?那还不是需要先扫描遍历一次得到范围???
2013-9-21 15:28
0
雪    币: 602
活跃值: (45)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
范围不管多少,都可以直接设置为100啦,然后开始遍历,把遍历算做扫描一个(或几个或0个,根据文件多少),如果文件太多,比如超过500,就可以开始边工作边扫描了,然后动态显示进度,反正不要求绝对精确的,还不是easy?
2013-9-21 15:41
0
雪    币: 1
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
NTFS可以直接从MFT上读取到文件个数和大小。
2013-9-26 09:35
0
游客
登录 | 注册 方可回帖
返回
//