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



我正在开发一个Qt应用程序,它将在WindowsOS X上分发。

该应用程序使用 SQLite 数据库。我可以将数据库文件保存在两个系统上的什么位置,以便在应用程序更新期间不被覆盖?

注1:我已经在OS X上找到了类似的问题。答案是使用以下命令将其保留在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)。

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

谢谢。

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

从 qt 文档中:

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

最新更新