当你用Chrome下载同一个文件到同一个文件夹100次之后……

说实话这个破事儿这么多年了第一次碰到,还真是有点意思。TL;DR:Chrome不会再继续重命名你的文件,而是在文件名后面添加下载时间戳。

没错,大过年的,我不仅疯狂加班还要疯狂出报表,而且这个有趣的内网系统下载文件名永远是同一个(菜蜥如我还知道下载文件名加个时间戳防止不小心覆盖)。Chrome有个很人性化的机制就是会对这种文件在保存的时候自动在文件名后面附加上数字,相信每天上网冲浪的各位或早或晚总会意识到这个feature。

然而我刚刚才知道这个feature是有上限的,到了(100)之后,文件名就变成了附加ISO8601时间戳。Why?

经过了整整五分钟的research,我发现这个有趣的行为历史还很悠久:Issue 135428是2012年提出来的。

简单地说,这个功能的实现方式很简单,一个常数kMaxUniqueFiles,设置成了100,然后下载文件的时候,发现文件名存在了,就在后面附加” (%d)”再搜一次,直到kMaxUniqueFiles为止,也就是说,实际上当你文件夹里有这么100个文件的时候(原始文件+(1)~(99)),为了出一个(100)文件名实际上搜文件名搜了100次,大家觉得如果无限持续下去性能是个问题,于是定了个100的上限。2012年当年的做法是,100个往后就不命名了,直接提醒你是否覆盖了。

但是这样明显也有问题,比如我刚刚碰到的这个情况,100往后我要么换个文件夹,要么就不方便了(得自己写一下文件名),于是在2018年10月的时候,改成了在文件名后面附加时间戳的方式,精确到毫秒,真的就很难重复了。

花六年修好的🤣。

能碰到这个状况,了解到这个无用豆知识,真不知道是幸运还是不幸呢。

分享到: