2015-10-13 104 views
1

有沒有辦法在QT中使用QStandardPaths獲取ProgramData路徑。如何使用QStandardPaths獲得「ProgramData」路徑

詳情:

  1. 我想知道如何使用QStandardPaths類的函數來獲取ProgramData路徑。
  2. 我想要跨平臺解決方案,這就是爲什麼我要使用QStandardPaths。我相信QT提供了這樣的解決方案,但我找不到它。
  3. 人們可能會問我爲什麼要這樣做,或者可能暗示它不好使用ProgramData的路徑。首先,我打算複製我的應用程序的用戶獨立配置文件。我希望所有用戶都能夠訪問該文件,僅用於閱讀。我將在設置步驟中找到必要的文件。 (我們雖然可以討論這種情況下,如果這不是一個好辦法做到這一點)

我已經嘗試過:

  1. QStringList locations = QStandardPaths::locateAll(QStandardPaths::DataLocation, QString(), QStandardPaths::LocateDirectory);

  2. QStringList locations2 = QStandardPaths::standardLocations(QStandardPaths::DataLocation);

  3. 我試圖以管理員身份運行我的QT(以查看問題是否由於某些特權問題引起)並且沒有任何變化

從點1和點2的功能,我也嘗試使用QStandardPaths::GenericDataLocation作爲標準的位置類型。其實,我已經試過在this鏈接,有 「ProgramData」 在其解釋

最後,我得到的是所有類型:

  1. C:/用戶/ MYUSER /應用程序數據/ {本地|漫遊}

  2. /數據

  3. QString
+1

這並沒有真正直接回答你的問題已經報道,但用於存儲用戶獨立的配置我建議使用['QSettings'](HTTP ://doc.qt.io/qt-5/qsettings.html)與['QSettings :: SystemScope'](http://doc.qt.io/qt-5/qsettings.html#Scope-enum)。 – Bowdzone

+0

我們不能使用像這樣的東西QString path1 =「C:/ ProgramData /」; QDir dir1(path1); dir1.setFilter(QDir :: NoDotAndDotDot | QDir :: Files);不確定只是問 – vishal

回答