我正在开发一个Qt应用程序,它将在Windows和OS X上分发。
该应用程序使用 SQLite 数据库。我可以将数据库文件保存在两个系统上的什么位置,以便在应用程序更新期间不被覆盖?
注1:我已经在OS X上找到了类似的问题。答案是使用以下命令将其保留在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)。
是否可以将数据库文件存储在同一路径中?
谢谢。
QStandardPaths::AppDataLocation
是否满足您对此的要求?
从 qt 文档中:
返回持久性应用程序数据所在的目录位置 数据处理。这是一个特定于应用程序的目录。获取路径 存储要与其他应用程序共享的数据,使用 QStandardPaths::GenericDataLocation.返回的路径永远不会为空。 在 Windows 操作系统上,这将返回漫游路径。这 枚举值在Qt 5.4中添加。