QQ2008和以前的版本里,在QQ的主目录下,会按照号码再生成用户目录,在用户目录下又会生成image和CustomFaceRecv两个目录。一个是用来保存图片,这个是说的截图和发送图片的这类图片。CustomFaceRecv下保存的则是别人发的自定义表情。时间一久,这两个目录下的图片会多的可怕。而且都是堆在一个目录下的。一个活跃的QQ群里的图片会无法计数,还有一个是可怕的自定义表情。像我只要一天时间,这两个目录下堆积的图片就能达到20M。而我这个还算是少的。
有清理QQ垃圾的人都有这经验,打开这连个文件夹的时候速度会慢到可怕,explorer进程经常在这里卡死。
QQ2009的机制换了,图片不再是放到这两个文件夹下,而是生成两个文件,image.db和CustomFaceRecv.db。因为没有合适的工具打开这两个文件,但基本上可以估计出来,应该是使用的类似sqlite机制的方法存储图片的吧,把图片压缩进来,并按照一定的方式组织。这个方法有一定的好处,首先是避免了打开文件夹是因为文件数量过多而造成explorer进程的崩溃。还有就是可能因为它有一定的压缩机制,让文件占用空间会更小。这个我还没做实验对比,所以无法确定。
但这样做同时带来了一个新的问题。这个文件会在你的QQ收到新的图片或者新的自定义表情的时候,不停的进行写入操作。有些杀毒软件默认会对文件进行修改过后也进行扫描。这样QQ挂着的时候不停接受这些图片,会让杀毒软件不停的进行扫描,影响机器速度。还有就是这两个文件会随时使用日积月累越来越大,扫描一次,或者QQ本身读取和解析它所花费的时间也会越来越多。这方法思路很好,但实际效果值得商讨。
我倒是想了一个办法。如果按照过去QQ2008和之前版本的做法,图片不压缩到一个文件里也是可以的。只要在image和 CustomFaceRecv目录下新建子目录,诸如image/2008/10/11/*这样的做法,让每天接受的图片存到一个新目录里面去。这样就算再大的量,也不会说在打开explorer进程的时候崩溃。如果你开了缩略图,可能会有些影响速度,但总比过去要好的多。按时间或者其他方法进行子目录的创建,也会让QQ在寻找这些图片的时候(比如查看聊天记录时)检索速度更快。
需要清空垃圾?也很简单。进入image或者CustomFaceRecv目录,直接全选删除就好。
同样的方法可以用到QQ2009的机制上来啊。比如每周新建一个db文件。这次是2008week12.db,存储了这一周的图片。到下周的时候换2008wee13.db,依次类推下去,也不会让文件体积过大了。
如果让用户可以自己选择如何存储这些文件,那就更好了。
联系客服