今天从网上下载了一含图片的压缩包。

包里的文件因为乱码的关系,一些文件名混乱的情况,是经常有的。但是这次稍显麻烦了点。

有一张图片的文件名,出现了『?』这个文件名非法字符。估计是因为在压缩包里,winrar也不会去检测,这没有非法的理由。一般情况下是根本不会出现的,如果要打包含非法字符文件名的文件,首先windows就不会让这种文件存在,当然无法打包。

但是,在压缩文件内的自行发生的乱码,根本不关外部文件名的事。

一旦要解压,winrar就会用包内的原文件名创建解压出的文件,但这时它就开始检测文件名是否合法了。如果发现不合法立刻终止并报错。

我解压时,winrar提示的大意是说有非法文件名之类的导致解压终止。其它文件解压都成功了,唯独那个带『?』的失败。

先试着找一下winrar有没有可以解决的办法。想在包内直接改名,重命名选项是灰色的,按F2也没反应。尝试用修复,没用。接着主要找找有没有用另外的文件名进行解压的选项,这样也许可以跳过原文件名,结果是,没有,郁闷了。结论是winrar还有待改进。。。

关键在这里。因为是图片文件,就想到了可以查看压缩文件的acdsee。用acdsee打开,果然可以查看,证实了该图片本身并没有损坏。开始试着寻找保存的办法。结果是同样应该是因为文件名的关系,不能直接提取原文件保存。『看来acdsee查看压缩包内文件是是直接释放到内存,不经过系统保存临时文件的啊。』只能在查看窗口中用另存为。但这样是从目前显示的图像中提数据,重新存为另外一个文件,与原文件不同,虽然作为图片看上去一样。当然,另存为就可以重新起文件名了。用了最佳质量,新的文件大小是原文件压缩前的约2.5倍,说明了与原文件确实不同。

还好这次只是图像文件出问题,可以由以上方法经acdsee转存。其它文件估计就困难了。

这个毕竟不是根本解决办法,对其它文件不起作用。如果有朋友另有高见,欢迎一同探讨。


4条评论

  1. 没有想过直接在压缩包里改名?

  2. 压缩包还在的话发过来研究下

  3. 用7-zip解压可以解决这类问题。

  4. 楼上说的对,用7-zip可以不用解压直接改文件名

发表评论

评论也有版权!

click to change验证码