C++ 在Windows和OS X上,在哪里可以存储SQLite数据库?
我正在开发一个将在Windows和OSX上发布的Qt应用程序 该应用程序使用SQLite数据库。我可以在两个系统上的何处保留数据库文件,以使其在应用程序更新期间不会被覆盖 注1: 我已经发现了一个与OS X类似的问题。答案是使用以下命令将其保留在应用程序支持中: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(NSApplicationSupportDirectory, NSUserDomainMask, YES) l
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);
路径变量是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中添加的。这会使它很难使用!