照片救回来了,打开一看全是今天,排序彻底乱掉,几百张图混在一起。文件本身是好的,只是时间戳被覆盖了。
恢复软件导出文件时,是新建一个文件再把内容写进去。新建的那一刻,系统的创建时间和修改时间就是当下。
原来的时间戳存在文件系统的目录项里,目录项一旦重建,旧的时间就没了。这不是软件的问题,是所有恢复工具的通病。
FAT32 的卡更麻烦,它连创建时间都不存,只有修改时间。从这种卡上恢复出来的文件,时间基本无解。

导出就是新建
还有个细节容易被忽略:时区。恢复出来的时间差八小时,不是文件错了,是工具按 UTC 写的,改成当地时间就好。
数码照片在文件头里写了一段拍摄信息,拍摄时间、相机型号、光圈快门都在里面,这段叫 EXIF。
恢复出来的文件哪怕时间戳错了,EXIF 通常还在。用工具读 EXIF,把拍摄时间写回文件的修改时间就行。

EXIF 里有真时间
批量处理很简单,一个命令或者一个小工具,几百张几秒钟。改完按时间排序,相册就恢复原样了。
Office 文档里存着创建时间、最后保存时间、作者、修订次数,这些信息在文件内部,不受文件系统影响。
PDF 也有类似的元数据,图片有 EXIF,视频有拍摄日期。格式不同,但思路一样:先读内部,再写回外部。
纯文本文件最麻烦,没有元数据。只能按内容里的日期线索,或者按文件在目录里的相对顺序估。
视频和音频的时间还有一层:文件内部有创建时间,文件名里也常带日期。两个对不上时,以内部那个为准。
照片用 ExifTool,一条命令就能把 EXIF 时间写进文件属性,支持递归整个目录。
文件管理器也能改,但只能一个个来,量大了不现实。系统的批量重命名能改文件名,不改时间。
改时间还有个用处:让文件在同步软件里按正确顺序排列。时间全一样的时候,同步工具会按名字排,顺序就乱了,改完记得再同步一次。

先复制再批量改
改之前先复制一份。批量操作容易一把改错,改错了原来的时间也没了,没法还原。
普通复制会保留修改时间,但创建时间可能变。用带参数的复制命令,把时间属性一起带过去。
移动硬盘之间搬东西,用系统自带的拖拽最省事,但它只保证修改时间,创建时间经常变成搬家那一天。
Windows 上 robocopy 加参数就能保留全部时间戳,Linux 上用 rsync 加参数,群晖和威联通的备份工具也有对应选项。

打包能保住时间
压缩包是个好办法。打包成 zip 之后,时间信息写在包里,解压时能还原。归档重要目录时顺手打个包。
改时间会影响文件内容吗
不会。时间戳是文件系统的属性,改它不碰数据区。但工具写元数据时会重写文件头,改之前还是留个副本稳。
视频的时间怎么改
看容器格式。MP4里有创建时间字段,MOV也有,用同一个工具能读能写。转码过的视频这个字段常被清空。
照片按 EXIF 批量改,文档按内部创建时间改。下次备份用带时间戳的方式,别用普通复制。