给老爸的手机换K40, 8G+256G,使用了半年多,帮他检查手机的时候,存储空间使用了近160G,其中微信竟然占了69G。
删除策略问题
我想清理数据,但是聊天记录的清理策略是那么的简(you)单(zhi),删除会话中的所有图片,视频和文件。删除策略不能和浏览器一样,采用最常见的删除xx天之前的方式吗
存储空间浪费的一个原因
空间占用很大的一个原因,相同文件仅仅改名后存储多份。
上面是手机文件管理器看到的微信存储文件目录中文件的列表。文件管理器不能看出是否是软链接,但是PC版本微信的存储就非常明确了。
下面图片是Files目录的截图,按大小排序后取了部分列表:
3个重复文件,占用了40M存储空间
这个是Attachment目录截图,目录按文件大小排序,然后显示大图标,可以看到多个重复的图片
还有Video目录,也是同样的问题。
解决办法:
相同文件只保存一份,就可以节约大量存储空间(无论手机或pc上)。
需要一个简单的文件管理数据库,记录文件大小和hash值。
当一个临时文件需要正式存储时,先查询是否有文件大小相同的文件,没有则存储该文件;
如果有,则计算hash值,和文件数据库中的相同长度的文件的hash值比较,相同则文件相同。
对于相同文件有两种处理方法,一种是不保存文件,在聊天数据库中,文件存储路径指向唯一存储的文件;另一种是在支持文件链接的文件系统上(Android,Linux,windows NTFS磁盘,IOS)生产一个软链接,即同一文件有两个或更多的路径名。
文件清理(删除)的时候都需要判断对相同文件做特殊处理,只有最后一次删除的时候,才真正删除文件。
强烈要求腾讯改进微信和qq的文件存储方法。你们几个人月的工作量(几十万人民币)可以至少节约出10^16 字节用户存储空间 (10M字节*1G用户)
补充一下:
最新已经是74.9G的聊天记录了。发了这个帖子,推给在微信的同学,微信为此升级了聊天记录管理功能(2022、6、29日发布的版本),可以按时间范围(三个月前,一年前),消息类型(文件 图片 视频),方式排序(大小,新旧),删除聊天记录了。据说Android平台上的微信app已经采用文件链接的方式处理了部分文件。
有了改进的删除方法我的问题基本解决了。