你知道为什么zip始终不兼容rar吗?

 你知道为什么zip始终不兼容rar吗? <script language="javascript" type="text/javascript">document.title="你知道为什么zip始终不兼容rar吗? - "+document.title</script>

不支持的原因:

zip格式是开放的,任何压缩软件都可以免费使用,RAR是RARLab的专利算法,其它软件要想提供对Rar格式支持必须交纳费用以获得授权,如果winzip想要支持zip,就必须向rarlab付费,这根本就是拿自己的血汗去喂饱对手。记住,winzip和winrar都是共享软件,中国人用惯了盗版的winrar,以为rar才是压缩格式的王道,自以为是的以为全天下的压缩软件都应该支持rar格式。这是一种极其荒谬的认知。

rar在中国兴起的原因:

Winzip确实是头号压缩软件,只不过在国内不是。
zip是免费开放的,而rar是要给钱的。为什么国内那么多人用rar?因为0day,Warez他们一直用rar...
当你压缩严重大的文件(比如800M+),你会知道RAR和7z为了那一点微不足道的更高压缩率耗费的时间是多么的不值得。

穿越时空回顾历史:

不知不觉中,曾经压缩领域的王者——WinZip已经发布到了10.0版本。这是Winzip在被收购后的第一个新版本,虽然也带来了不少的全新特性,但是此刻的Winzip却始终还没能创造王者归来的神话,重夺压缩领域的王座,但是Winzip在早期版本时代,其压缩与解压缩的能力确实无人能够匹敌,下面就让我们来再现一下Winzip发展到10.0版本的过程中的一些精彩历程。

英雄的诞生

谈到ZIP压缩格式,大家立马会想到WinZIP软件。但是你是否知道,创造这个格式的并非WinZIP公司,而是一位编程天才。不过ZIP格式的缔造并没有给这位天才带来财富和幸运,或许这就是大多数默默勤奋工作的编程者的必然……

  Winzip的创始人是Philip Katz。用Ultraedit打开任一个zip文件,可以看到文件最前面PK两个字母,这便是zip文件格式的创始人Philip Katz的名字缩写。

在DOS时代就开始使用电脑的玩家可能都会记得,那时候的处理器速度与存储介质的容量与现在相比简直不可同日而语,为了COPY(拷贝)一个游戏我们常常要更换数张软盘。从那个时候起,我们认识了ZIP文件,在没有Windows的年代,使用字符界面和命令行方式压缩的程序主要有PKZIP和ARJ两种,直到过渡到Windows时代,WinZip的出现才使压缩软件的规格得到了统一。互联网上无数的文件都以“.zip”的格式进行存储,压缩文件使用户能在最短的时间里将文件从网上下载回自己的硬盘中,在没有宽带,连MODEM都仅仅是14.4K的速率的那个年代,ZIP文件为我们节省了大量的宝贵时间与金钱。但很少有人知道ZIP文件的由来,很少知道它的创造者菲利普·卡兹。

  在19年前,也就是公元1988年,那时候互联网还刚刚开始有了雏形,而最流行的是一种使用电话线拨号登陆别人在家里搭建的服务平台——交换信息的电子公告牌(BBS)系统。这种系统有些类似现在的论坛和新闻组,由于站长之间互相转信也成为了一个庞大的信息网络(惠多网)。

  老一点的玩家可能都有印象,在没有 Internet的年代,中国大地上也曾有几十个这样的BBS存在,著名的字处理软件WPS的作者求伯君和CCED的作者朱崇君当年都是非常有名的个人站长。这种方式不但可以传递文本信息,也可以由用户上传文件到站点的计算机以供其他用户下载。由于电话线的接入速度慢的可怜,通过BBS传输较大文件实在是叫人痛苦的一件事。于是,使用文件压缩技术减小文件的体积并将多个文件压缩到一个封包中就成为了BBS用户的一项必须掌握的技巧。当时的美国BBS上,比较流行的是一种叫做ARC的压缩技术,由于它是一家商业公司开发的压缩技术,使用这种软件进行工作是需要付费的。那时候的菲利普·卡兹是一个沉迷于BBS 上的毛头小伙,由于经常混迹于BBS上,对于ARC的收费非常不满的他自
己开发了一个程序叫PKARC,这个程序与ARC完全兼容,可以压缩和解压缩 ARC文件。这样一来,大批的ARC用户自然转而使用菲利普·卡兹的免费软件。ARC的制作公司一怒之下将菲利普·卡兹告上了法庭,法庭自然判决菲利普· 卡兹禁止继续开
发和传播PKARC。这种判决并没有磨灭菲利普·卡兹的斗志,而是激起了他要与ARC斗争到底的决心。在虚拟的世界中,自由、平等永远是真正的程序员永久的追求。

  他放弃了PKARC的开发,发誓要写出一款比ARC更好的压缩软件来打败ARC。这一场官司造就了一名编程天才的横空出世,也造就了一个后来在互联网时代的文件标准。几周以后,后来统治整个BBS世界乃至Internet世界的ZIP在菲利普·卡兹手中发出了第一声响亮的啼哭!

  不名则已,一鸣惊人,这种名为PKZIP的程序可以将一个或多个文件压缩到一个后缀为“.zip”的文件中,无论从压缩比、压缩速度方面都超过了商业软件 ARC。卡兹将PKZIP作为自由软件免费发放,使其
如同草原上的星星之火般在全美的各大BBS上蔓延开来,用户以几何级数的增长,各大BBS的站长自发将原来使用ARC格式压缩的文件转换成ZIP格式,卡兹用他天才的头脑和顽强的毅力堂堂正正的击败了ARC,ARC的制作公司在PKZIP的强大攻势下很快就消声匿迹了。用自由软件打败商业公司的传奇故事很快传遍了整个BBS世界,疾恶如仇而又身手不凡的菲利普·卡兹如同数字世界的大侠般仗剑江湖,劫富济贫,以一人之力擎起了压缩软件的大旗。

  此后卡兹一直继续着对 PKZIP的开发和维护工作,PKZIP建立和统治了DOS时代的压缩标准。直到Windows的诞生,使用卡兹创造的压缩算法的软件Winzip的出现更使ZIP格式成为Internet的传输标准,ZIP压缩格式也成为压缩文档的事实标准。


  辉煌时代

  这段被人们津津乐道的传奇故事使菲利普·卡兹成为了很多热衷于编程的年轻人心中的偶像(注1)。在20世纪末,winzip软件一直雄霸着整个压缩世界。当时的电脑用户的电脑中谁都不敢说没有ZIP文件。 它获得荣誉与嘉奖无数(附
图),成为每位电脑爱好者的装机必备工具。

附图:Winzip所获部分奖项

  注1:可惜,这位天才程序员却从未在ZIP身上得到半点好处,坚持信念的结果往往是潦倒的生活,糟糕的个人生活和长期编写软件的巨大压力使卡兹染上了酗酒的恶习,最终断送了他那年轻的生命。他为世界贡献了一个伟大的免费软件,更为重要的是他缔造了一种大众化的压缩格式,然而却过早地离开了这个世界。

2000年4月14日,在美国威斯康星州密尔沃基的一家汽车旅馆里,人们发现了一具年轻人的尸体,检查得知这个人的死因是酗酒、饮酒过量导致的死亡。死者被发现的时候,手中还握着一个空酒瓶,房间中还有五个空酒瓶。这样一个酒徒的死也许在平时只是地方小报上的一条不起眼的新闻,但这个人的死却在互联网上掀起了轩然大波。无数人在网上发表评论与文章,纪念他的离开,寄托人们的哀思,因为他不是一个普通人,他叫菲利普·卡兹(Philip Katz),几乎全世界的每一台个人电脑上都有用他创造的压缩算法生成的文档,这种文档的后缀是“.zip”,这些文档的的开头都嵌有他姓名的字头缩写字母‘PK’。这位在全世界的电脑中留下痕迹的天才程序员终年仅37岁。


两强争霸

  21世纪初,Winzip的天敌正在悄然崛起--Wrar。当时Winzip早已稳坐压缩界头把交椅,但随着2.7版本的出现,Wrar却日益壮大,两者斗争得异常激烈(注2)。

  注2:与Winzip一样,其实早在DOS时代,就存在RAR的DOS版本,只是RAR在DOS时代敌不过只能用命令行的ARJ,到了Windows时代又招架不住WinZip的进攻,皆因RAR压缩率低和速度慢,并且RAR压缩格式以前一直缺少其它软件的支持,导致WinRAR都未能广泛流行。

  就当时两者的性能而言,Winzip压缩只支持ZIP格式,解压缩支持ZIP、CAB,还有TAR、GZip、UUencode、XXencode、 BinHex、MIME等几种Internet常用格式(可以看出WinZip的重心之所
在),ARJ、LHA和ARC则需要相应的外挂程序。但 WinZip跟Windows资源管理器结合得很紧密,最常用的压缩和解压缩操作已集成到鼠标右键菜单中,点按右键即可轻松完成压缩解压缩。并且增加了不少人性化的功能如E-mail功能,分卷压缩,密码加密等;那Winrar又凭什么与其争锋呢?答案是格式支持与功能!WinRAR压缩格式支持自家的 RAR和ZIP(即可“兼容”ZIP),解压缩支持
RAR、ZIP、CAB、ACE、ARJ、LHA、TAR、GZip、UUE,基本上常用的都有了。 WinRAR在界面上类似WinZip在功能上基本是WinZip有的它都有,甚至有好多比WinZip还更好更强大。如有特色的"Repair archive"功能甚至可以修复损坏的zip文件
;"Convert archive to SFX"功能把RAR和ZIP文件转换成自解压文件,同WinZip不同的是,在压缩时就可以直接存为自解压文件...取对手之精华,并改进之,这就是 Winrar敢于与压缩界龙头叫板的原因。


英雄迟暮

  其实早在争霸时代, Winzip就表现出不断求进的决心,只不过每次新版本的发行只是小修小补,而且越新版本给人的感觉越有点华而不实,跟新生代软件比起来功能太少,这跟 ZIP格式已经落后了有点关系。7.0到
8.0版除了压缩率有了一点降低而压缩速度有了一点提高外,就几乎看不出有什么变化,WinZip发展到8.0版后确实已走到暮年了...2002年起,Winrar凭借其压缩支持及功能的优势,将Winzip的皇朝逐渐攻陷。加上WinACE等各种压缩软件的冲击,这时的Winzip,就像一个仍令对手不敢放肆的高手,但已武功全失了。


最后反击

  虽然ZIP仍然是压缩文件的标准格式,但随着WinRAR的功能越来越强大,并且对ZIP的兼容性和ISO镜像文件的支持,固步自封的WinZip已经逐渐开始被网民们所遗忘。面临被打倒,昔日的强者做出了最后的反击--Winzip9.0。2004年发布的Winzip9.0是Winzip公司在02 年后两年内第
一次发布的Winzip软件更新,可见这次Winzip反击的决心。本版本的Winzip带来了很多新的功能特性,如:加密标准提高,支持符合AES技术的128位和256位的高级加密标准;支持64位扩展技术;内置了先进的“真空”压缩算法(Enhanced Deflate)等。这一切
都是针对WinRAR 3.30,誓求夺回压缩界的王座。


英雄之倒下

  可惜就像乔丹的最后出场一样,也许真的是老了,我们再难看到英雄昔日的光彩。

  WinZip 9.0对压缩格式的支持并没有什么增加,支持原有的18种压缩格式,但仍然不支持ISO这一非常流行的镜像文件格式,并且最大的问题是不兼容RAR,这就令许多用户敬而远之了;相对而言,WinRAR 3.30目前的压缩格式虽然只有15
种,但由于兼容ZIP和支持ISO,仅仅这两条就使不少WinZip的老用户心动神移了。

  随着绝唱反击的失败,于2005年7月,WinZip被Vector Capital收购。

  也许在天之灵的Philip Katz并没有想到有这一天,作为下载量达到1亿4000万次,成就压缩标准zip的Winzip计算公司好象没有考虑过用其技术来赚钱的事(实际上很少有人会在WinZip试用期过后支付29美元购买正版授权,因此WinZip至今都没有获得太多利润)。它为大家提供一款如此经典的压缩软件,曾经,它是何等辉煌,但如今却威风难再。或者正如歌词所说:"想回到过去,试着让故事继续,至少不再让你离我而去..."

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
解压RAR5兼容RAR4是指使用Java语言编写程序,可以解压RAR5格式的压缩文件,并且还兼容RAR4格式的压缩文件。在实现这个功能时,需要使用一些相关的jar包,如引用中提到的xmpcore-5.1.2.jar和metadata-extractor-2.11.0.jar等。此外,还需要注意一些细节问题,如文件名编码、文件路径等。 下面是实现Java解压RAR5兼容RAR4的大致步骤: ```java // 导入相关的jar包 import java.io.File; import java.io.FileOutputStream; import java.io.IOException; import java.io.OutputStream; import java.util.ArrayList; import java.util.List; import java.util.zip.ZipEntry; import java.util.zip.ZipInputStream; import org.apache.commons.compress.archivers.ArchiveEntry; import org.apache.commons.compress.archivers.ArchiveException; import org.apache.commons.compress.archivers.ArchiveInputStream; import org.apache.commons.compress.archivers.ArchiveStreamFactory; import org.apache.commons.compress.archivers.rar.RarArchiveEntry;import org.apache.commons.compress.archivers.rar.RarArchiveInputStream; import org.apache.commons.compress.utils.IOUtils; public class RarUtils { /** * 解压RAR文件 * @param rarFile RAR文件 * @param destDir 解压目录 * @throws IOException * @throws ArchiveException */ public static void unrar(File rarFile, String destDir) throws IOException, ArchiveException { ArchiveInputStream in = new ArchiveStreamFactory().createArchiveInputStream(ArchiveStreamFactory.RAR, new FileInputStream(rarFile)); RarArchiveInputStream rarIn = (RarArchiveInputStream) in; RarArchiveEntry entry = null; while ((entry = rarIn.getNextRarEntry()) != null) { String name = entry.getName(); File file = new File(destDir, name); if (entry.isDirectory()) { file.mkdirs(); } else { File parent = file.getParentFile(); if (!parent.exists()) { parent.mkdirs(); } OutputStream out = new FileOutputStream(file); IOUtils.copy(rarIn, out); out.close(); } } rarIn.close(); } } ```

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值