我正在尝试从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。可能的原因是什么?
在C和C ++中,\
默认情况下,字符用作转义字符,它们用于表示某些特殊字符(例如'\n'
表示换行符)。当您打算在字符串文字中实际使用它们时,需要对它们进行转义。
因此,您的setDatabaseName
呼叫应如下所示:
db.setDatabaseName("C:\\Users\\myaccount\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\234f25fs.default\\cookies.sqlite");
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句