我正在开发一个 Qt 应用程序,该应用程序将在 Windows 和 OS X 上发布。
该应用程序使用 SQLite 数据库。我在哪里可以将数据库文件保留在两个系统上,以免在应用程序更新期间被覆盖?
注1 :
我已经找到与 OS X 相似的question。答案是使用以下命令将其保留在Application Support
中:
NSString * supportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDirectory, NSUserDomainMask, YES) lastObject];
但我也需要在 Windows 上执行此操作。我是否应该在 Windows 上使用此命令?
注2 : 我使用INI文件存储我的应用程序设置,如下所示:
QString path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
QSettings *settings = new QSettings(path+"/Settings.ini", QSettings::IniFormat);
path
变量为C:/Users/user/AppData/Local/MyApplication/
(Windows)。
我可以将数据库文件存储在同一路径中吗?
谢谢。
答案 0 :(得分:1)
QStandardPaths::AppDataLocation
是否满足您的要求?
返回持久应用程序数据所在的目录位置 存储。这是一个特定于应用程序的目录。获取路径 存储要与其他应用程序共享的数据,使用 QStandardPaths :: GenericDataLocation。返回的路径永远不会为空。 在Windows操作系统上,这将返回漫游路径。这个 枚举值在Qt 5.4中添加。