【发布时间】:2017-05-26 16:19:30
【问题描述】:
我正在开发一个 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)。
我可以将数据库文件存储在同一路径中吗?
谢谢。
【问题讨论】:
-
为什么不呢?这只是一个文件。
-
我知道,但是这条路径 (
C:/Users/user/AppData/Local/MyApplication/) 是否适合存储此类文件? -
这取决于你(我不知道你在用这个数据库做什么),但总的来说,是的。
-
谢谢,@latedeveloper。我的数据库存储了用户收集的一些数据,它应该“永远不会”被删除。实际上,我需要将此数据库文件存储在用户不会意外删除的某个文件夹中,即使使用 CCleaner 或任何其他“清洁”应用程序也是如此。
-
在我们的应用程序中,我们使用类似于注释 2.QStandardPaths::writableLocation(QStandardPaths::ConfigLocation) / 数据库的东西
标签: c++ windows macos qt sqlite