Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 在Windows和OS X上,在哪里可以存储SQLite数据库?_C++_Windows_Macos_Qt_Sqlite - Fatal编程技术网

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

C++ 在Windows和OS X上,在哪里可以存储SQLite数据库?,c++,windows,macos,qt,sqlite,C++,Windows,Macos,Qt,Sqlite,我正在开发一个将在Windows和OSX上发布的Qt应用程序 该应用程序使用SQLite数据库。我可以在两个系统上的何处保留数据库文件,以使其在应用程序更新期间不会被覆盖 注1: 我已经发现了一个与OS X类似的问题。答案是使用以下命令将其保留在应用程序支持中: NSString * supportDir = [NSSearchPathForDirectoriesInDomains(NSApplicationSupportDir‌​ectory, NSUserDomainMask, YES) l

我正在开发一个将在Windows和OSX上发布的Qt应用程序

该应用程序使用SQLite数据库。我可以在两个系统上的何处保留数据库文件,以使其在应用程序更新期间不会被覆盖

注1: 我已经发现了一个与OS X类似的问题。答案是使用以下命令将其保留在应用程序支持中:

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);
路径变量是C:/Users/user/AppData/Local/MyApplication/Windows

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

谢谢。

QStandardPath::AppDataLocation是否满足您的要求

从:

返回可以保存持久应用程序数据的目录位置 存储。这是一个特定于应用程序的目录。获得通往 存储要与其他应用程序共享的数据,请使用 QStandardPath::GenericDataLocation。返回的路径从不为空。 在Windows操作系统上,这将返回漫游路径。这 Qt 5.4中添加了枚举值


为什么不呢?这只是一个文件。我知道,但路径C:/Users/user/AppData/Local/MyApplication/是否是存储此类文件的合适位置?这取决于您我不知道您在使用此数据库做什么,但总体上是的。谢谢@latedeveloper。我的数据库存储了用户收集的一些数据,永远不应该删除这些数据。实际上,我需要将此数据库文件存储在某个文件夹中,即使使用CCleaner或其他更干净的应用程序,用户也不会意外删除该文件夹。QStandardPaths::writableLocationQStandardPaths::ConfigLocation/Databases感谢您的建议。它似乎是存储DB文件的好地方,但我已经将其存储在QStandardPath::ConfigLocat中了‌​我使用的是Qt5.3,这个枚举是在Qt5.4中添加的。这会使它很难使用!