当前位置:首页 > 芯闻号 > 充电吧
[导读]继续研究压缩文件,我又崩溃了。压缩文件以16个簇为单位进行压缩,按压缩后的数据的尺寸分配磁盘空间,然后配上相应的稀疏流,形成完整的单元描述。比如,某16簇数据压缩之后只占用7个簇,系统从卷的210H簇

继续研究压缩文件,我又崩溃了。

压缩文件以16个簇为单位进行压缩,按压缩后的数据的尺寸分配磁盘空间,然后配上相应的稀疏流,形成完整的单元描述。比如,某16簇数据压缩之后只占用7个簇,系统从卷的210H簇起分配了7个簇,那么其描述如下:
21 07 10 02 01 09

因为不同的数据压缩率不同,对于某些类型的数据,可能压缩之后的尺寸反而大于压缩前,因此,对于此类数据,直接写入磁盘反而提高效率。所以MS规定,如果流尺寸大于等于16簇,则表示该流是非压缩流,数据读入时不需要解压。比如某210H开始的非压缩流数据描述如下:
21 10 10 02

对于尺寸刚好16个簇的流,那也罢了。

对于尺寸大于16个簇的流,欢乐的事就开始了。
比如某16H个簇的数据非压缩数据,那么该流的描述是(假设数据位置还是从210H开始):
21 16 10 02
因此,第一个单元(201H,10H)是非压缩数据,而其后的6个簇的数据因为在同一个描述内,所有也是非压缩数据,因为该单元的前6个簇是非压缩数据,所以该单元的所有数据都是非压缩数据,那么,假设第二个单元的数据存放在:
400H 5H, 450H 5H
这流描述就是:
21 16 10 02 21 05 00 04 21 05 50 04
这样,前后两个单元都是非压缩数据,这也罢了,如果第二个单元的最后一个描述超出该单元(比如450H 5H的那个流变成450H 7H,描述了再下一单元的2个簇),那么其后的单元(第三个单元)也是非压缩数据-_-b,我们可以以此类推……OMG!整个压缩文件都是非压缩数据………劳资泪奔T_T

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除( 邮箱:macysun@21ic.com )。
换一批
延伸阅读
关闭