QT檔案目錄操作

2021-06-27 08:37:00 字數 2535 閱讀 2537

qt檔案目錄操作

[email protected]

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;iinisetting.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 返回...