我正在尝试从我的firefox的cookie-db中获取一个cookie。但是,由于某种原因,数据库将无法打开。
QString tgc;
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("C:\Users\myaccount\AppData\Roaming\Mozilla\Firefox\Profiles\234f25fs.default\cookies.sqlite");
bool ok = db.open();
if (!ok)
{
// qDebug() << "Error: connection with database fail";
}
else
{
QSqlQuery query("SELECT value WHERE name='TGC' FROM moz_cookies");
if (query.next())
{
tgc = query.value(0).toString();
}
}
db.close();
return tgc;
但是,db.open()
返回false。可能的原因是什么?
答案 0 :(得分:3)
在C和C ++中,\
字符默认用作转义字符,它们用于表示一些特殊字符(如'\n'
,表示换行符)。当你想在字符串文字中实际使用它们时,你需要转义它们。
因此,您的setDatabaseName
电话应该是这样的:
db.setDatabaseName("C:\\Users\\myaccount\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\234f25fs.default\\cookies.sqlite");