日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

Qt程序关于路径、用户目录路径、临时文件夹位置获取方法

發(fā)布時(shí)間:2023/12/13 综合教程 55 生活家
生活随笔 收集整理的這篇文章主要介紹了 Qt程序关于路径、用户目录路径、临时文件夹位置获取方法 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

  比如我們有一個(gè)程序在:

  C:/Qt/examples/tools/regexp/regexp.exe

1. 程序所在目錄

  QString QCoreApplication::applicationDirPath()

  那么 qApp->applicationDirPath() 的結(jié)果是:

  輸出:C:/Qt/examples/tools/regexp  

2. 程序的完整名稱。那么可以這么寫:

  qApp->applicationFilePath()

  輸出:C:/Qt/examples/tools/regexp/regexp.exe

3. 當(dāng)前工作目錄

 QDir 提供了一個(gè)靜態(tài)函數(shù) currentPath() 可以獲取當(dāng)前工作目錄

  如果我們是雙擊一個(gè)程序運(yùn)行的,那么程序的工作目錄就是程序所在目錄。

  如果是在命令行下運(yùn)行一個(gè)程序,那么運(yùn)行程序時(shí)在命令行的哪個(gè)目錄,那個(gè)目錄就是當(dāng)前目錄。

4. 用戶目錄路徑

  Qt 5 中引入的方法

  QStandardPaths::writableLocation(QStandardPaths::HomeLocation);

  QStandardPaths::standardLocations(QStandardPaths::HomeLocation);

  這兩個(gè)方法的區(qū)別是 standardLocations() 返回值是 QStringList。當(dāng)然對(duì)于 HomeLocation 來說這個(gè) QStringList 中只有一個(gè) QString。

  還有另外一種方法,利用 QDir 類的一個(gè)靜態(tài)函數(shù):

  QDir::homePath();

5. 我的文檔路徑

  Qt 5 中引入的方法。

  QStandardPaths::writableLocation(QStandardPaths::DocumentsLocation);

  QStandardPaths::standardLocations(QStandardPaths::DocumentsLocation);

6. 桌面路徑

  QStandardPaths::writableLocation(QStandardPaths::DesktopLocation);

  QStandardPaths::standardLocations(QStandardPaths::DesktopLocation);

7. 程序數(shù)據(jù)存放路徑

  通常我們會(huì)將程序所需的一些數(shù)據(jù)存入注冊表。但是有時(shí)需要存儲(chǔ)的數(shù)據(jù)太多,放在注冊表中就不適合了。這時(shí)我們就要找個(gè)專門的地方來放數(shù)據(jù)。以前我喜歡將數(shù)據(jù)直接放到程序所在目錄,但是后來發(fā)現(xiàn)我的程序運(yùn)行時(shí)經(jīng)常沒有權(quán)限對(duì)這個(gè)目錄下的文件進(jìn)行寫操作。后來發(fā)現(xiàn)其實(shí) Qt 早就替我們考慮過這些問題了。

  Qt 5 中引入的方法。

  QStandardPaths::writableLocation(QStandardPaths::AppDataLocation);

  QStandardPaths::standardLocations(QStandardPaths::AppDataLocation);

  Qt 5.5 中引入了另一種方法:  

  QStandardPaths::writableLocation(QStandardPaths::AppConfigLocation);

  QStandardPaths::standardLocations(QStandardPaths::AppConfigLocation);

  這個(gè)方法一般來說和上面的方法得到的結(jié)果是相同的。按照 Qt 幫助文檔的解釋,這個(gè)方法可以確保返回的路徑非空。所以我認(rèn)為應(yīng)該優(yōu)先選用這個(gè)方法。

8. 臨時(shí)文件路徑

  Qt 5 中引入的方法。

  QStandardPaths::writableLocation(QStandardPaths::TempLocation);

QStandardPaths::standardLocations(QStandardPaths::TempLocation);

  更傳統(tǒng)的方法是利用 QDir 的一個(gè)靜態(tài)函數(shù) tempPath()。

  QDir::tempPath();

  在這個(gè)目錄下生成臨時(shí)文件和臨時(shí)目錄需要用到另外兩個(gè)類: QTemporaryFile 和 QTemporaryDir。就不展開介紹了,大家可以參考 qt 的幫助文檔。

至此,常用的各種特殊路徑就介紹的差不多了。剩下還有些不常用的,可以參考 QStandardPaths 類的介紹。

endl;

總結(jié)

以上是生活随笔為你收集整理的Qt程序关于路径、用户目录路径、临时文件夹位置获取方法的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。