Qt怎么实现解压缩和压缩文件的功能

Qt怎么实现解压缩和压缩文件的功能t怎么实现解压缩和压缩文件的功能,不想调用本地的rar指令。第三方库Quezip稳定吗,在哪里可以找到比较全的源码。

2个回答

有开源的库的,
或者自己根据压缩,解压的原理,简单实现一个也是可以。
google下,都是有做好的。
老早前玩过,

#include <QCoreApplication>
#include <QByteArray>
#include <QBitArray>
#include <QString>
#include <QDebug>
#include <QFile>

void Zip(QString filename , QString zipfilename);
void Unzip(QString zipfilename , QString filename);

int main(int argc, char *argv[]) {

    QCoreApplication a(argc, argv);

    //zipping
    Zip("D:\\programs\\demo.txt","D:\\programs\\demo.zip");
    qDebug() << "Done zipping";

    //unzipping
    Unzip("D:\\programs\\demo.zip","D:\\programs\\demo_unzipped.txt");
    qDebug() << "Done unzipping";

    return a.exec();
}

void Zip (QString filename , QString zipfilename){

    QFile infile(filename);
    QFile outfile(zipfilename);
    infile.open(QIODevice::ReadOnly);
    outfile.open(QIODevice::WriteOnly);
    QByteArray uncompressedData = infile.readAll();
    QByteArray compressedData = qCompress(uncompressedData,9);
    outfile.write(compressedData);
    infile.close();
    outfile.close();
}

void Unzip (QString zipfilename , QString filename){
    QFile infile(zipfilename);
    QFile outfile(filename);
    infile.open(QIODevice::ReadOnly);
    outfile.open(QIODevice::WriteOnly);
    QByteArray uncompressedData = infile.readAll();
    QByteArray compressedData = qUncompress(uncompressedData);
    outfile.write(compressedData);
    infile.close();
    outfile.close();
}
.pro file

QT       += core

QT       -= gui

TARGET = TestZippingExample
CONFIG   += console
CONFIG   -= app_bundle

TEMPLATE = app


SOURCES += main.cpp

http://karanbalkar.com/2014/02/zipping-and-unzipping-files-using-qt-5-framework/

yl_woxiang
yl_woxiang 这个不能压缩文件夹吧
大约一个月之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Qt下实现文本文件解压缩功能
利用Qt编程实现对文本文件的解压缩; 编程代码可见,可直接调试运行;
怎么解压缩一个.zip的压缩文件?
有没有什么好的控件呀?哪里可以下载到?
qt在linux系统下实现压缩文件
简述 编程进行文件压缩一般有三种方法: 一是使用zlib的C++开源源码; 二是使用Quazip动态库; 三就是在子进程中使用第三方软件。 由于在windows中开发qt程序使用了zlib源码库;而linux下的命令行操作又如此简单。这里用第三种方法来实现。 代码之路 代码非常简单。这里由于压缩的文件需要传输到windows系统,故采用zip命令压缩生成.zip文件。可以根据实际情况使用其它压缩工...
xz压缩文件的解压缩过程
本文可以作为另一篇博文: squashfs文件的读取过程 的后续。根据squashfs文件的读取过程 一文介绍,当从flash上获取了文件数据后,如果数据是压缩的还要经过解压缩,本文就为您介绍一下xz压缩文件的解压缩过程。
怎样解压缩.zip的压缩文件!!
怎样解压缩.zip的压缩文件!!
IOS解压缩和压缩文件
以前提到过[url=http://labs.ywlx.net/?p=1181]Android解压缩zip[/url]的实现方式,现在讲解一下IOS中解压的方法。 压缩文件: [code=&quot;java&quot;]ZipArchive *zip = [[ZipArchive alloc] init]; NSString *sZipPath = [NSHomeDirectory() string...
解压缩功能的实现
示例实现解压缩,不需要添加额外的库文件,不依赖MFC。
c# 怎么解压缩rar的压缩文件?高手指点!
问题如题目,谢谢.
批量解压缩,实现多个压缩文件快速解压
批量解压缩,实现多个压缩文件快速解压 安全,方便,快捷
Qt怎么实现这样的功能
[img=http://img.my.csdn.net/uploads/201210/11/1349922964_9316.jpg][/img]rn这个原来是用网页实现的,现在要用Qt实现rn图上所有的信息都是从数据库读出来的,但是在每一条信息前面都有个Check Box,所以这相当于是一张表格里面有Check Box,可是要怎么实现从数据库里面读出来,前面就加一个这个控件,还有就是只要点击账号就会显示此账号的信息,Qt里面好像没有这样的view可以有这样操作的,求解
qt下怎么实现时钟功能?
我想在qt界面上显示一个像windows任务栏里那种时钟,应该怎么做,qt里貌似没有可以直接用的类,用计时器应该怎么搞呢,思路不是太清晰。此外,计时器不会导致阻塞吧?我不想多线程,太麻烦。
C# zip压缩文件的打包与解压缩
C# zip压缩文件的打包与解压缩,代码完整,可以运行!
Hjuffman编码压缩文件与解压缩文件
本代码使用Java变成,使用Huffman树能够实现文件压缩与文件解压缩。
如何对zip压缩文件解压缩
如何对zip压缩文件解压缩,网上搜到好多,主要是zlib和infozip库,但是讲得很乱或者很深,有没有一个简单的例子,调用zlib库对指定路径的zip文件进行解压缩。
java压缩文件解压缩和文件的压缩
java 写的一个工具类可以用来解压缩zip,rar文件到指定的文件夹下
linux tar命令解压缩、压缩文件
tar 命令 用法:tar  [option...]   [file] 解压缩、压缩文件常用参数 -x      从文件档案中提取文件,即解压缩 -z      压缩或解压缩gzip属性的文件 -j       压缩或解压缩gzip2属性的文件 -c      创建新的文件档案 -v      显示文件产生的过程 -f       使用某个文件,该参数后接文件名 -C      ...
怎么实现压缩与解压缩
VB里如何在不使用第三方控件的时候实现文件的压缩与解压缩?
用java实现的压缩文件功能
用java实现压缩功能。这里面的类是很值得学习的
qt 解压缩问题
有个一个打包好的文件夹,现在要通过QT进行解压缩,请问不用第三方类库怎么实现??rn下面是我在网上找的代码:rn[code=C/C++]rnvoid SysConfig::unzip(QString inFileName,QString outFileName)rnrn QFile inFile(inFileName);rn QFile outFile(outFileName);rnrn inFile.open(QIODevice::ReadOnly);rn outFile.open(QIODevice::WriteOnly);rnrn QByteArray uncompressData=inFile.readAll();rn QByteArray compressData=qUncompress(uncompressData);rn outFile.write(compressData);rnrn inFile.close();rn outFile.close();rnrn[/code]rnrn我上边的做法是把这个文件夹解压缩 然后放到了一个QFile中,结果悲剧的错了。rnrn大家说说思路 提示一点点就行,如果有代码就更好了。 谢谢
iOS文件解压缩、带密码解压缩、压缩文件情况处理
iOS用ZipArchive文件解压缩、压缩文件
Qt 怎么实现类似这个功能
[img=https://img-bbs.csdn.net/upload/201801/09/1515494481_562279.png][/img]rn这个炉石传说盒子右侧有个对话框,无论对程序如何操作,点击,打字,跳出模态/非模态的对话框等等,这个对话框始终能够在最上层显示,我想问下用Qt有没有办法实现类似的功能
Qt实现换肤功能
采用样式表实现简单的换肤功能。 请用Qt5.0以上版本编译
qt实现摇奖的功能
主要就是用qt实现摇奖的功能,一个框架,可以导入自己或者别人的图片,实现摇奖
Qt:实现定时关机功能
编译环境:win10(64bit),Qt5.12.2,Qt Creator 4.8.6 在Spin Box 中设置剩余关机的时间,再选择Check Box开启/关闭定时关机。通过Check Box转到槽函数实现具体定时关机功能 void setting::on_cb_timed_shutdown_clicked(bool checked) { if(checked) { ...
Qt 实现登录功能
Qt项目实现登录功能: 思想: 根据登录页面的用户名和密码,去 数据库的用户表中查询是否有这个而用户,如果有就登录没有就提示错误! 数据库。 在数据库建立相应的表格。如下图mysql数据表格。 Qt : 首先创建相应的登录页面。如下图 程序 .pro 文件: 添加 : QT += sql .h 文件 #include &lt;QWidget&gt; #include &lt;QS...
Qt实现记事本功能
仿照window自带的记事本,基本实现了记事本的功能
Qt实现拖放功能
实现拖拽效果,文字和图标都可以作为拖拽的对象 不同程序也能相互拖拽
QT实现的截图功能
QT实现的截图软件,支持快捷键截图,可以截圆形图,全局热键, 分享效果 链接:https://pan.baidu.com/s/1emocxSZCa-8TJL0dJiA_Gw 提取码:3b9n 解压后可直接运行效果 根据自己的需要看是否愿意下载
QT计算器功能的实现
1新建mainwindow工程 main.cpp文件#include "mainwindow.h" #include <QApplication>int main(int argc, char *argv[]) { QApplication a(argc, argv); MainWindow w; w.show(); return a.exec(); } mainwi
QT实现用户登录功能
功能: 1.提供登录界面(客户端) 2.服务器端用数据库来存储用户名和密码 3.注册时客户端将注册信息发送给服务器端,并进行验证,如果注册名可用,添加进数据库并返回客户端添加成功信息。 4.登录时客户端将登录信息发送给服务器端进行验证,服务端返回验证结果。 待添加: 1.服务器端并发功能实现 #include "tcpclient.h" #include int
QT实现备注功能
我的QT界面是一个绘制面板,用来绘制一些图案,rn现在想实现一个功能,右键可以插入一个图钉式的标记,弹个框输入一段文字或者保存一张图片rn下次打开程序时,点击这个图钉,就会在相应位置显示出这段文字描述或者图片或者超链接等等rnrnrn想实现这么样一个功能,求问有没有什么好的实现思路rnrn我想着如果图钉是用按钮来实现,点击这个按钮会产生一个控件来显示保存的文字或图片信息rn那么这个按钮和控件都是属于动态生成的,有没有好的思路来解决这一类问题rnrn其实最后的功能有点想做成google erath那样,点击每一个地名,会出现一个标签页显示这个地名的详细信息等等。rn求大神指导一下。
QT 实现手写识别功能
基于WINDOWS,QT 实现手写识别功能,调用我封装的C#的手写识别库,配合我这篇文章理解 https://blog.csdn.net/gigizhongyan/article/details/89519779
qt实现图片编辑功能
qt4.7 实现图片编辑 包括打开图片,在图片上画线条,线条颜色,宽度改变!保存编辑的图片!内容很简单 一看就懂 主要知识点就是c++中的继承知识!
QT实现浏览器功能
1 界面设计     &amp;lt;1&amp;gt;QWidget      &amp;lt;2&amp;gt;QAxWidget     &amp;lt;3&amp;gt;QPushButton     &amp;lt;4&amp;gt;QLineEdit    2 实现浏览器功能 ui-&amp;gt;setupUi(this); HRESULT r = OleInitialize(0); if(r!=S_OK &amp;amp;&amp;...
qt实现录音功能
//初始化录音 void Player::InitRecording() {     //设置录音格式  8000hz\单声道\8bit\unsigned int数据\小段排列 //    ui->LbProgress->setText(tr("00:00/00:00"));     QAudioFormat format;     format.setSampleRate(8
qt实现删除文件功能
使用qt删除空文件夹,初学者可以好好看看!
怎么实现解压缩,在线等;
网上都是VB,C#的解压缩的例子。VC怎么实现呀。rn压缩我可以实现;rn[code=C/C++]rnShell32::IShellDispatchPtr shell("Shell.Application"); rnShell32::FolderPtr folder = shell->NameSpace(lpszZipFilePath);rnnBefore = folder->Items()->Count;rnif (FAILED(folder->CopyHere(lpszSrcFilePath)))rn return bRes;rnrn[/code]rnrn解压缩怎么也不行rn[code=C/C++]rn Shell32::IShellDispatchPtr shell("Shell.Application");rnrn Shell32::FolderPtr SrcFolder = shell->NameSpace(lpszZipFilePath);rn Shell32::FolderPtr DestFolder = shell->NameSpace(lpszSrcFilePath);rn Shell32::FolderItemsPtr items = SrcFolder->Items();rnrn if (FAILED( DestFolder->CopyHere(items) ))rn return FALSE;rn rn[/code] rnrn原因是 CopyHere时老出错:Shell32::FolderItemsPtr' 到 'const _variant_t & 不能转换rn怎么办,
Qt实现打印输出功能
在Qt中实现打印暑促功能,打印文字图片等,还可以把内容输出为pdf,实现类似QQ的屏幕截图功能
QT实现截屏功能
QT中本身的截屏实现方式: QPixmap pixmap = QPixmap::grabWindow(QApplication::desktop()->windId()); QDateTime dt = QDateTime::currentDateTime(); QString filename = QString("%1.jpg").arg(dt.toString("yyyyMMdd-hh
Linux下解压缩和压缩文件命令zip,unzip
压缩(zip)     将目录/usr/local/temp/xxxx 文件夹压缩成 xxxx.zip文件中 $ zip -r xxxx.zip /usr/local/temp/xxxx   解压缩(unzip)      解压缩xxxx.zip文件到目录 /usr/local/temp/xxxx $ unzip xxxx.zip -d /usr/local/temp/xxxx ...
相关热词 c# stream 复制 android c# c#监测窗口句柄 c# md5 引用 c# 判断tabtip 自己写个浏览器程序c# c# 字符串变成整数数组 c#语言编程写出一个方法 c# 转盘抽奖 c#选中treeview