qt在linux系统下实现压缩文件

简述

编程进行文件压缩一般有三种方法:
一是使用zlib的C++开源源码;
二是使用Quazip动态库;
三就是在子进程中使用第三方软件。
由于我在windows中开发qt程序时已经使用过了zlib源码库;而linux下的命令行操作又如此简单。这里用第三种方法来实现。

代码之路

代码非常简单。这里由于压缩的文件需要传输到windows系统,故采用zip命令压缩生成.zip文件。可以根据实际情况使用其它压缩工具。

void compressFile(const  QString srcPath, const QString workPath, const QString zipfile)
{
	QProcess process;
	process.setWorkingDirectory(workPath); //cd workPath
	QStringList args;
	args << "-mr" << zipfile << srcPath; //-m表示压缩后删除源文件,如不需要删除,用-r即可
	process.start("zip", args);
	while (false == process.waitForFinished(1000)) //每隔一秒判断是否压缩完毕
	{
		;
	}
	process.close();
	return;	
}

其中函数的形参srcPath传入待压缩的文件名;workPath传入待压缩文件的路径;zipfile传入生成压缩文件的全路径(包括压缩文件名)。

下面举个遍历目录进行压缩的应用例子:

QDir sdir(spath);
sdir.setFilter(QDir::Fil
  • 2
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值