qt檔案目錄操作
2023年11月28日
讀取:qfile開啟檔案,qtextstream獲取檔案流,qtextstream呼叫read函式讀取資料。使用完成後關閉。
寫入:開啟時用write許可權,然後向流中寫入資訊。
參見:qt檔案讀寫.docx
使用qdir讀取當前目錄下的所有內容,使用【】可以讀取其中一條子目錄。
if(!
qdir(strtargetpath).exists())
參考:指定目錄後可以操作相應的資訊。
示例:void
mainwindow
::addvectorlayer()
//result
filename = "d:/test/data/國家400萬/bou1_4l.shp",path= "d:/test/data/國家400萬" ,fullname= "bou1_4l.shp"
,name= "bou1_4l" ,suffix= "shp"
配置檔案用於記錄使用者對軟體的設定。在windows中使用系統登錄檔(麻煩),在macos中使用喜好xml。在unix中無標準,一般使用ini檔案。
所以預設情況下,如果我們建立乙個qsettings,則在windows中生成乙個登錄檔項,在其它作業系統中也有相應的檔案生成。如果指定為iniformat,可以在建立時指定儲存位置,預設情況下位置存放在使用者文件下。
qsettings是執行緒安全的,但資料更改後並不會立即寫入,使用sync()可以獲取、寫入最新的資料。
配置檔案有多種型別,nativeformat表示使用系統api定義,也iniformat表示使用ini檔案,也可以自定義型別。
預設情況下,使用使用者組織=》程式名作為qsettings的名稱。在iniformat中可以指定名稱。
配置檔案分為使用者範圍和系統範圍兩種作用域。
配置檔案中以【section】為分割段。
配置檔案中的資料以鍵值對的方式組織資料,鍵是qstring型別,值為qvariant型別。
可以將任何型別直接轉換為qvariant,但是從qvariant只能直接轉換為qtcore範圍內的格式,對於其它格式,使用qvariant::value進行轉換。
不同的os中對於大小寫敏感性不同,所以應該盡量使用相同的大小寫格式讀寫資料,但不以大小寫為識別特性。
在查詢配置項時,可以按照使用者項、組織項、系統使用者項、系統組織項的順序查詢,也可以禁用這種回溯查詢。
如果建立指定名稱的ini檔案,則可以指定ini檔案路徑。
使用setvalue(key,value)寫入。
直接寫入,以/表示section/key。
或是以begingroup(section);
setvalue(key,value);
endgroup();
使用value(key)讀取。
直接寫入,以/表示section/key。
或是以begingroup(section);
value(key,value);
endgroup();
參考://ini
setting create and writing
qsettingsinisetting(strinifilepath,qsettings::iniformat);
inisetting.setvalue("section/a","a-value");
inisetting.setvalue("section2/aa","aa-value");
inisetting.begingroup("group");
inisetting.setvalue("x1","xx1");
inisetting.setvalue("y1","xy1");
inisetting.endgroup();
//ini
settings reading
qsettingsinisetting(strinifilepath,qsettings::iniformat);
qstringstrpreceptlist=inisetting.value("precept/precept").tostring();
m_lstpreceptitem=strpreceptlist.split(",");
qstringstrtargetlist=inisetting.value("target/target").tostring();
m_lsttargetitem=strtargetlist.split(",");
inisetting.begingroup("sql");
for(inti=0;i
inisetting.endgroup(); Qt 檔案目錄操作
qfile 除了開啟檔案操作外,還有複製檔案 刪除檔案等功能 qfileinfo 用於提取檔案資訊,包括路徑 檔名 字尾 qdir 用於提取目錄或檔案資訊,獲取乙個目錄下的檔案或目錄列表,建立或刪除目錄和檔案,檔案重名等操作 qtemporarydir 和 qtemporaryfile 用於建立臨時...
QT 常用檔案與目錄操作
qt 常用檔案與目錄操作 1.刪除乙個目錄及其下面的所有檔案 qstring path tmp maps qdir dir path dir.removerecursively qt4 不支援 用下述遍歷方法 qdir d path path 不能為空,為空刪出當前目錄.小心 d.setfilter...
QT目錄操作
1.1目錄操作 1.1.1判斷目錄是否存在 qdir mdir d qdebug 1.1.2建立目錄 qdir mdir d ceshi if mdir.exists else 1.1.3獲取常用目錄 qdebug 返回應用當前的目錄 qdebug 返回應用程式當前目錄的絕對路徑。qdebug 返回...