用C语言如何对文件进行压缩

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用C语言如何对文件进行压缩相关的知识,希望对你有一定的参考价值。

参考技术A winrar软件安装后,所在的安装目录下有个rar.exe,开一个命令窗口到该目录下运行rar
/?就能看到用法了,在你的程序里面调用它的相应命令行是最简单的方法,自己编写压缩算法的话,先不谈效率,起码算法就是相当复杂的了

BAT批处理对A目录下的所有文件夹分别进行RAR分卷压缩

BAT批处理对A目录下的所有(进入)文件夹分别进行RAR分卷压缩,并将分卷压缩文件保存到D盘;
其中的一个分卷压缩(*)part1.rar固定大小为1MB;

需要注意的是(进入)文件夹分别进行RAR分卷压缩,而不是对文件夹进行RAR分卷压缩
原来的提问有了相关答案 但还不够完美
百度知道一下:
如何使用BAT批处理对大量文件夹进行批量RAR分卷压缩

参考技术A REM 要处理的目录
cd /d "C:\temp"

REM 保存的目录
SET saveTo=d:\myrar

REM WinRar在哪
SET rar="C:\Program Files (x86)\WinRAR\WinRAR.exe"

REM 不存在则创建,也可以变成存在则先删除
IF NOT EXIST "%saveTo%" mkdir "%saveTo%"

REM 下面的命令,得到目录列表
REM %%a写法中注意命令行和.bat文件中的区别:
REM 命令行中只要一个%、.bat中要两个的。
for /d %%a IN ( * ) DO (
ECHO "%saveTo%\%%a.rar"
%rar% a -r -v1m -s -y -m5 -ilog%saveTo%\rar.log "%saveTo%\%%a.rar" "%%a"
)

RAR命令行的用法,参考RAR使用说明,打开WINRAR、帮助、说明主题、命令行模式,即看到,基本每个命令有例子,好容易上手的。追问

看不懂 能不能帮我做个现成的BAT
注明使用说明即可
拜托了

追答

这个是非常现成的.bat了!

追问

这个bat已经测试过了,是对文件夹进行分卷压缩的 我需要的是进入文件夹对文件夹里面的文件进行分卷压缩。

另外你的分卷压缩(*)part1.rar不是固定大小为1MB,而是平均分卷压缩大小为1MB的;
能不能修改下?
例如:一个文件夹100MB,进行分卷压缩后其中的(*)part1.rar=1MB (*)part2.rar=99NB

参考技术B 百度ID 很久没上线了
将D:\A下子目录的所有文件分别压缩,压缩名为子目录文件名,压缩文件存放到D:\result\目录中
我没测试,只用原来的代码,修改了部分参数,去掉压缩文件中的一级目录
@echo off
if not exist rar.exe echo 请将批处理与Rar.exe放在同一个目录中。&pause&goto :eof
pushd D:\A\
for /d %%i in (*) do rar a -v1m -v -r -ep1 "D:\result\%%i" "%%i"
popd
pause
参考技术C OK
已经搞定了 我是问题提问者
参考技术D 疑问:是不是A目录下有很多文件夹,然后这很多文件夹下又有很多 文件夹或文件?
对其中的 文件或文件夹 进行压缩呢?追问

是的,你能帮助我吗?

以上是关于用C语言如何对文件进行压缩的主要内容,如果未能解决你的问题,请参考以下文章

如何实现,读取远程文件,用GZIP压缩后保存成文件

MicroBlaze如何对DDR2进行读写操作?有没有api函数可以用?用C语言如何实现对DDR2的读写?

用C语言如何对MySQL数据库进行操作

c语言如何对字符串进行位置查询

C语言实现文件压缩

C语言怎样对文件进行操作