问题描述:
安卓 QQ 的图片发送功能在导入照片后会乱序,且排序规则不明
尝试解决过程:
设备:
小米 9,MIUI10,未 ROOT
前提:
所有照片均用 Perl 脚本配合 ExifTool 验证是否具有拍照时间( DateTimeOriginal )
如果没有拍照时间则使用修改时间作为拍照时间(美颜照片结果均没有 DateTimeOriginal 数据项)
所有视频文件均同样验证,验证字段为 MediaCreateDate、MediaModifyDate、CreationDate
最后统一所有文件的文件系统修改时间为拍照时间 /媒体修改时间
尝试:
1、使用 FTP 经过 WIFI 导入,文件系统修改时间会以 FTP 写入结束时间戳记录,乱序
2、使用 MTP 导入,文件系统修改时间为原始修改时间,但 QQ 照片发送功能乱序
3、使用 MTP 导入,重命名所有文件并按顺序拷贝进入机器,成功....
猜测与建议:
在第二次乱序的时候,按 QQ 图片发送功能的顺序排查照片在文件系统内的目录属性
怀疑使用 ctime ( change time )作为图片排序依据
但 ctime 实为文件状态修改时间,包括权限修改文件移动在内的操作均会引起时间更新
按理说不应作为排序依据,更为合适的选择是 mtime,但此数据在 FTP 拷贝中会失效
建议使用 EXIF 数据与 mtime 作为依据联合排序
不存在 exif 数据的情况下再考虑 mtime,由始至终绝不考虑 ctime
临时解决办法:
备份现有设备上的照片数据,并清空,按顺序重命名所有文件,并按顺序拷贝进机器
这样可保证 ctime 按照片顺序递增,QQ 图片发送功能不乱序,
但视频文件规范命名前缀为 VID,批量拷贝的时候必然排序在最后位置,并不完美