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

标签 c++ windows macos qt sqlite

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

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

注意事项 1: 我已经找到类似的 question关于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 documentation :

Returns a directory location where persistent application data can be stored. This is an application-specific directory. To obtain a path to store data to be shared with other applications, use QStandardPaths::GenericDataLocation. The returned path is never empty. On the Windows operating system, this returns the roaming path. This enum value was added in Qt 5.4.

关于c++ - 在 Windows 和 OS X 上,我可以在哪里存储 SQLite 数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41598267/

相关文章:

c++ - 为什么会出现此错误?无法从 <brace-enclosed initializer list> 转换为 'std::vector<>'

c++ - 如何获取用户输入并按变量排序?

javascript - 为什么非视网膜 Mac 会加载 2x 版本的图片元素?

macos - 在 Mac 上使用 KEXT 进行文件 I/O

macos - 通过应用程序链接到App Store上开发人员的应用程序

c++ - 为什么我在添加另一个构造函数时会出现此错误?

c++ - 如果我指定多个,则使用哪个 `main`

c++ - 在系统上的何处安装 SDK DLL,以便需要它们的应用程序可以找到它们

mysql - 如何在 WAMP 上更改 mysql 数据库目录

python - 在没有管理员权限的 Windows 上安装 python 模块