㈠ 用QT怎么解压ZIP文件
Qt调用zlib解压缩的方法
/**
*返回值:将解压出来的文件的绝对路径保存在QStringList中
*
*参数:FileName是要解压的zip文件的绝对路径,QStringList其实也就是QList<QString>list类型用来保存解压后各文件的路径
*
*功能:解压指定的zip文件并将解压出来的文件的绝对路径保存在list中
**/voidWidgetSmallClass::slot_UncompressedFile(QStringFileName,QStringList&ListPic)
{
/**新建一个文件夹,用来保存解压后的文件*/
QStringUnpressPath=FileName.remove(".zip");
QDirdir;
dir.mkpath(UnpressPath);
unz_file_info64FileInfo;
/**打开zip文件,这里记得一定要加上".zip",因为在上面的时候已经将".zip"移出去了。*/
unzFilezFile=unzOpen64((FileName+".zip").toStdString().c_str());
unz_global_info64gi;
/**获取文件数量*/
if(unzGetGlobalInfo64(zFile,&gi)==UNZ_OK)
{
intresult;
for(inti=0;i<gi.number_entry;++i)
{
charfile[256]={0};
charext[256]={0};
charcom[1024]={0};
if(unzGetCurrentFileInfo64(zFile,&FileInfo,file,sizeof(file),ext,256,com,1024)!=UNZ_OK)
{
;
}
if(!(FileInfo.external_fa&FILE_ATTRIBUTE_DIRECTORY))//文件,否则为目录
{
result=unzOpenCurrentFile(zFile);//无密码
result=unzOpenCurrentFilePassword(zFile,"szPassword");//有密码
}
chardata[1024]={0};
intsize;
/**将路径写到list中*/
QStringpath=UnpressPath+QString("/")+file;
ListPic<<path;
QFileFile(path);
File.open(QFile::WriteOnly);
/**打开新文件并将数据写进去*/
while(true)
{
size=unzReadCurrentFile(zFile,data,sizeof(data));
if(size<=0){break;}
File.write(data,size);
}
File.close();
unzCloseCurrentFile(zFile);
if(i<gi.number_entry-1&&unzGoToNextFile(zFile)!=UNZ_OK){return;}
}
unzClose(zFile);
}
else{return;}
}
㈡ qt如何实现点击按钮打开指定文档
connect(m_HelpAct, SIGNAL(triggered()), this, SLOT(OnHelp()));
实现槽函数:
void CXXX::OnHelp(){
QString runPath = QCoreApplication::applicationDirPath(); //获取exe路劲。
QString helpName = "帮助文档.pdf";
QString helpPath = QString("%1/%2").arg(runPath).arg(helpName);
QFile bfilePath(helpPath);
if(!bfilePath.exists()){
return;
}
QString filePath = "file:///" + helpPath; //打开文件夹用filse:///,打开网页用http://
QDesktopServices::openUrl(QUrl::fromLocalFile(filePath));
}
㈢ qt中将文件保存在文件夹下打开文件夹找不到
qt中通过添加现有文件后找不到目录的原因是没有识别到该文件的加入。解决办法
1、重建工程,一次性加入所有需要的文件,有时需要增加对应的接口。
2、只要三个步骤:清理项目,执行qmake,重新编译。
㈣ qt 打开文件的几种方式
在/usr 目录下有e1.xml 文件,在程序的执行文件所在目录下有个test文件夹,test里有configurefile2.xml ;configurefile3.xml 一:工程里使用后缀为qrc的资源文件: 比如 资源文件里的内容为:<RCC<qresource <file alias="configfile1"/usr/configurefile1.xml</file <file alias="configfile2"test/configurefile2.xml</file <filetest/configurefile3.xml</file </qresource</RCC(其中test是在工程执行文件所在路径下的一个文件夹) 这样在程序中: QFile file1(":/configfile1"); QFile file2(":/configfile2"); QFile file3(":/test/configurefile3.xml"); file1.open(QFile::ReadOnly); file2.open(QFile::ReadOnly); file3.open(QFile::ReadOnly);上述三条打开文件的操作都可以成功打开对应文件, 但是如果在资源文件里 如果对某个文件的引用里加了alias别名的操作,比如QFile file2(":/test/configurefile2.xml"); file2.open(QFile::ReadOnly);将打开文件失败。 QT里:/表示对资源的引用,不是表示当前目录 二 使用相对路径 QFile file3("test/configurefile3.xml"); file3.open(QFile::ReadOnly);OPEN成功 三 使用绝对路径
㈤ Qt怎么打开指定文件夹下的SQLite数据文件
首先,你的数据库肯定是跟着你的程序跑的,你不能指定你程序一定要用户放到D盘下面,也许用户喜欢把程序放到E盘下面呢。所以你在指定的时候最好用相对路径,假设你程序运行目录是在bin下面,你可以在bin下面创建一个data目录专门用来保存数据库,你指定目录的时候就可以
db.setDatabaseName("./data/student.db");//这样指定。
㈥ QT怎么给一个文件设置读写权限
下面是常用的修改权限的方法:
1、首先找到拒绝访问的文件夹,在其上鼠标右键,选择属性,之后切换到“安全”选项下,之后在底部可以看到有“高级”设置。
2、选择“高级”选项后会弹出文件夹的高级设置框属性,切换到“所有者”选项卡下,在其底部可以找到“编辑”操作选项。
3、点击编辑选项后,在新弹出的窗口中双击用户账号“Achai”,注意一定要选择下面的“替换子容器和对象的所有者”,如果不选择此项打开此文件夹后,下面的子文件夹我们还是无法打开,选择后点“应用”。