我在哪里可以在Windows和OS X上存储SQLite数据库?

时间:2017-01-11 18:36:33

标签: c++ windows macos qt sqlite

我正在开发一个 Qt 应用程序,该应用程序将在 Windows OS X 上发布。

该应用程序使用 SQLite 数据库。我在哪里可以将数据库文件保留在两个系统上,以免在应用程序更新期间被覆盖?

注1 : 我已经找到与 OS X 相似的question。答案是使用以下命令将其保留在Application Support中:

NSString * supportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDir‌​ectory, 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)。

我可以将数据库文件存储在同一路径中吗?

谢谢。

1 个答案:

答案 0 :(得分:1)

QStandardPaths::AppDataLocation是否满足您的要求?

来自qt documentation

  

返回持久应用程序数据所在的目录位置   存储。这是一个特定于应用程序的目录。获取路径   存储要与其他应用程序共享的数据,使用   QStandardPaths :: GenericDataLocation。返回的路径永远不会为空。   在Windows操作系统上,这将返回漫游路径。这个   枚举值在Qt 5.4中添加。