【问题标题】:Qt: where is the best "Path" to save SQLite database of a Qt-creator application?Qt:保存 Qt-creator 应用程序的 SQLite 数据库的最佳“路径”在哪里?
【发布时间】:2016-03-08 02:36:54
【问题描述】:

目前,出于开发和调试的原因,我正在对我的 SQLite 数据库的路径进行硬编码,如下所示:

QString path = "/Users/user/Documents/workspace/application/";
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(path+"dbFile");
db.open()

但是,对于未来的“发布”版本,我需要应用程序在用户机器中创建、保存和访问数据库。那么,保存 Qt-creator 应用程序的数据库的最佳位置是什么?我该怎么做?!

【问题讨论】:

  • 嗯,尝试将database文件移动到QtCreator的项目资源下...
  • 您的意思是在项目的主文件夹中创建一个资源文件夹? ... @KernelPanic
  • 这取决于您所说的最佳。您希望数据库能够轻松更改吗?你不想轻易改变它吗?你想要安全吗?
  • 我希望它嵌入到应用程序中,以便“普通”用户可以开始使用应用程序而不必担心数据库的位置......现在,如果用户安装了应用程序并尝试运行它,应用程序将崩溃,因为她/他的机器没有我已经设置的路径......安全性不是动机(还),因为易于访问和机器独立...... @NathanOliver
  • 对于 Windows:在“APPDATA\your_product_name\data_file_name”下,SHGetFolderPathmsdn.microsoft.com/en-us/library/windows/desktop/… 找到了 APPDATA 的路径

标签: c++ qt sqlite qt-creator


【解决方案1】:

首先,Qt 是跨平台库,并尝试使用它的全部功能。 简而言之:

  1. 使用Standard Paths
  2. 另外不要忘记使用writableLocationQFileInfo 检查可写能力。
  3. 关于地点:只给用户选择的机会。我更喜欢将所有数据存储在应用程序文件夹中,以便于维护。但通常应用程序将所有配置存储在用户目录中,它以某种方式“安全”的解决方案。

【讨论】:

  • 谢谢 .. 这正是我想要的。
猜你喜欢
  • 2011-10-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-26
  • 1970-01-01
  • 2014-10-08
  • 1970-01-01
相关资源
最近更新 更多