㈠ 用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」,注意一定要選擇下面的「替換子容器和對象的所有者」,如果不選擇此項打開此文件夾後,下面的子文件夾我們還是無法打開,選擇後點「應用」。