创建高压缩率的压缩文件

把300多MB的文件压缩成了一个不到2MB的RAR文件

 
注意:

1、使用尽量高版本的WINRAR。

2、本文介绍的方法是以时间换空间的方法。在压缩体积较大的文件时,如果不是必要,请不要使用以下方法,因为它需要用相当长的时间才能完成。

第一步 选中并右击要压缩的文件,选择“添加到压缩文件”,在“常规”标签下选择“创建固实压缩文件”,并在“压缩方式”下选择“最好”。

第二步 点击“高级”标签下的“压缩”按钮,这时会打开“高级压缩参数”窗口,然后进行如下操作:
(1)针对程序或文档文件的压缩设置。可将“文本压缩”下的“预测顺序”设置为“30”,“内存使用 MB”中设置为“30”,当然,你也可以将这两个值设置得更高,以提高压缩率。
(2)针对未经压缩的音频文件。如WAV等,可将“音频压缩”项下的“声道”设置为4。
(3)针对未压缩的图片文件。如BMP、TIF等,可将“真彩压缩”下设置为“强制”。如果你听说过BMP格式用RAR格式压缩后比JPG文件还小的“传闻”,那么,你就来试试这个选项吧,它可以帮你把它们变得更小。

设置完上面的内容后,从“常规压缩”下的“字典大小  KB”下拉菜单中选择“4096”项(如果内存高于64MB建议使用此项,否则应设置为较小的数值来减少内存使用),最后点击“确定”开始压缩

三、将任意一个较小的文本文件,与压缩后的压缩包重新压缩,具体方法请参照第一步和第二步,只是在设置“字典大小  KB”时,选择“2048”即可。

在实际使用中,可能你会发现,本文提供的数值并不是最佳的,这是因为不同数据,由于设置不同,产生了不同压缩率,所以如果你要求尽量小的数据,那可以多试几次进行压缩。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是一个用C语言编写的数据上传流程的示例代码,包括开始、待上传文件MD5索引、判断是否存在该索引、遍历该索引列表、判断是否是大文件、分片上传断点续传、普通上传、判断是否是待上传文件、判断是否是文本文件、进行压缩率zip压缩、上传文件、结束的流程代码: ```c #include <stdio.h> // 开始 void start() { printf("数据上传流程开始\n"); } // 获取待上传文件的MD5索引 char* getMD5Index(char* filename) { printf("获取待上传文件的MD5索引\n"); // 执行获取MD5索引的操作 char* index = ""; // 假设获取到了MD5索引 return index; } // 判断是否存在该索引 int isIndexExist(char* index) { printf("判断是否存在该索引\n"); // 执行判断索引是否存在的操作 int exist = 1; // 假设索引存在 return exist; } // 遍历索引列表 void traverseIndexList(char* index) { printf("遍历该索引列表\n"); // 执行遍历索引列表的操作 } // 判断是否是大文件 int isBigFile(char* filename) { printf("判断是否是大文件\n"); // 执行判断文件大小的操作 int isBig = 0; // 假设不是大文件 return isBig; } // 分片上传断点续传 void uploadWithResume(char* filename) { printf("分片上传断点续传\n"); // 执行分片上传断点续传的操作 } // 普通上传 void upload(char* filename) { printf("普通上传\n"); // 执行普通上传的操作 } // 判断是否是待上传文件 int isPendingFile(char* filename) { printf("判断是否是待上传文件\n"); // 执行判断是否是待上传文件的操作 int isPending = 1; // 假设是待上传文件 return isPending; } // 判断是否是文本文件 int isTextFile(char* filename) { printf("判断是否是文本文件\n"); // 执行判断是否是文本文件的操作 int isText = 1; // 假设是文本文件 return isText; } // 进行压缩率zip压缩 void compressToZip(char* filename) { printf("进行压缩率zip压缩\n"); // 执行压缩率zip压缩的操作 } // 上传文件 void uploadFile(char* filename) { printf("上传文件\n"); // 执行上传文件的操作 } // 结束流程代码 void end() { printf("数据上传流程结束\n"); } int main() { start(); char* filename = "example.txt"; // 待上传的文件名 char* index = getMD5Index(filename); if (isIndexExist(index)) { traverseIndexList(index); } else { if (isBigFile(filename)) { uploadWithResume(filename); } else { upload(filename); } } if (isPendingFile(filename)) { if (isTextFile(filename)) { compressToZip(filename); } uploadFile(filename); } end(); return 0; } ``` 请注意,这只是一个简单的示例代码,您需要根据具体的需求和算法来实现各个函数中的操作。这个示例代码中使用了简单的 `printf` 函数来输出每个步骤的信息,您可以根据实际情况进行修改和扩展。希望这个示例代码能对您有所帮助!
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值