操作系统:linux\kylin
Qt版本:5.10.12
问题描述:QZipWriter进行压缩的文件,无法在代码中调用QZipReader进行解压(包括其它第三三方解压库也无法进行解压);但可以通过终端运行zip工具进行解压。
原因分析:从代码中解压时,压缩包无QFile::ExeUser权限,导致无法进行解压!是Qt5.10.12源码BUG,需要修改其源码。
解决方法:1、修改Qt5.10.12源码;2、重新编译Qt5.10.12源码。
Qt5.10.12源码修改:
修改Qt5.10.12源码目录下的qzip.cpp文件:
源文件目录:./qtbase/src/gui/text/qzip.cpp
修改源文件中的permissionsToMode全局函数修改qzip.cpp其256和257行
将QFile::WriterUser改成QFile::ExeUser
将UnixFileAttributes::WriterUser改成UnixFileAttributes::ExeUser保存后重新编译勇即可解决