需求:
实现带进度显示的文件加解压。(文章末尾附代码地址)
方案:
1.使用Qt自带的Qzip 。
2.使用Qt打包工具中带的Qtlib7z。
3.使用 Quazip。
问题:
1.使用Qt自带的Qzip 由于Qzip存在Bug无法解压2G以上文件需要去修改Qt源代码故放弃。
2.使用qt的lib7z库实现加解压文件时文件和文件路径不能带有中文,故放弃。
3.使用 Quazip需要自己实现进度数据回显,实现难度低故采用(源码方式引入Quazip+Zlib无需单独编译Quazip+Zlib库)。
实现接口:
/**
* @brief 获取压缩包的文件列表
* @param fileCompressed 压缩包名
* @return 压缩包内的文件列表
*/
QStringList getFileList(QString fileCompressed);
/**
* @brief 同步压缩文件
* @param fileCompressed 压缩包名
* @param files 需要压缩的文件名列表
* @return true 表示压缩成功,false 表示压缩失败
*/
bool syncCompressFiles(QString fileCompressed, QStringList files);
/**
* @brief 异步压缩文件
* @param fileCompressed 压缩包名
* @param files 需要压缩的文件名列表
* @details 需要关联 signalCompressFilesFinish 信号获取压缩操作结果
*/
void</