【发布时间】:2015-10-13 08:15:19
【问题描述】:
有没有办法在 QT 中使用QStandardPaths 获取ProgramData 路径。
详情:
- 我想知道如何使用 QStandardPaths 类的函数获取
ProgramData路径。 - 我想要跨平台解决方案,这就是我想要使用 QStandardPaths 的原因。我相信 QT 提供了这样的解决方案,但我找不到它。
- 人们可能会问我为什么要这样做,或者可能会建议使用
ProgramData路径不好。首先,我打算在那里复制我的应用程序的用户独立配置文件。我希望所有用户都能够访问该文件,仅用于阅读。我将在设置步骤中找到必要的文件。 (不过,如果这不是一个好方法,我们可以讨论这种情况)
我已经尝试过的:
QStringList locations = QStandardPaths::locateAll(QStandardPaths::DataLocation, QString(), QStandardPaths::LocateDirectory);QStringList locations2 = QStandardPaths::standardLocations(QStandardPaths::DataLocation);我尝试以管理员身份运行我的 QT(以查看问题是否是由于某些权限问题引起的),但没有任何改变
使用第 1 点和第 2 点的函数,我还尝试使用 QStandardPaths::GenericDataLocation 作为标准位置类型。实际上,我已经尝试了 this 链接中的所有类型,其解释中包含“ProgramData”
最后,我得到的是:
C:/Users/myUser/AppData/{Local|Roaming}
/数据
- 空
QString。
【问题讨论】:
-
这并不能真正直接回答您的问题,但为了存储与用户无关的配置,我建议使用
QSettings和QSettings::SystemScope。 -
我们不能使用这样的东西 QString path1 = "C:/ProgramData/"; QDir dir1(path1); dir1.setFilter(QDir::NoDotAndDotDot|QDir::Files);不确定只是问