Я хочу создать приложение, которое имеет бэкэнд C ++ и использует sqlite3. Я могу подключиться к базе данных в памяти, используя следующий код: m_db = QSqlDatabase::addDatabase("QSQLITE"); m_db.setDatabaseName(":memory:"); m_db.open();
Но я не знаю, какой путь я должен использовать или какой путь мне нужно сделать, чтобы создать файл локальной базы данных на моем телефоне. Если я запускаю приложение на своем компьютере, я могу заменить ":memory:"
на любой путь, который я хочу.
Благодаря
Я получил подсказку от комментария до этого вопроса, что я не могу больше находить.
, Если Вы хотите записать в от файловой системы, необходимо заботиться о заключении приложения Ubuntu. Нормальное не ОС положила, что приложение может только записать в некоторые ограниченные "частные" каталоги и читать еще из некоторых каталогов. Можно использовать класс QStandardPaths для нахождения этих каталогов. Например, для получения перезаписываемого каталога данных я использую QStandardPaths::writableLocation(QStandardPaths::DataLocation)
, и с QStandardPaths::standardLocations(QStandardPaths::DataLocation)
Вы получаете все читаемые каталоги данных. Это работает на меня для создания моего sqlite3 файла в записываемом каталоге данных.
Между прочим: можно получить другие виды каталогов для приложения с помощью QStandardPaths (например, временный файл, кэш...).
заключения приложения Ubuntu доступны здесь .
-s
,-t
и-p
опции, оба являющийся полезным в некотором роде. – dessert 19 August 2017 в 01:33