由于网盘下载下来压缩包比较多,一个一个手动解压比较费时,所以等战拜托我写了一个针对目录下所有压缩包的自解压程序。
在运行这个自动解压所有压缩包的时候,等战发现存在某些压缩包,在运行时会出现文件名过长的问题。在谷歌及StackOverflow上查找相关问题,发现由于某些压缩包是在windows或mac系统下打包的,而在linux下,单个文件名以及文件夹名的utf8编码不能超过256的字节长度,完整路径的长度不能超过4096个字节。
对于仅有最后一个文件名过长的情况,截断其中间部分,且在中间部分加入8位md5值避免重复覆盖。对于其他情况,单独创建一个文件夹,截断其中间部分,组成新的文件名放入新文件夹中。详情请参考: 解压代码。