Qt相对路径和绝对路径的问题
dir_file=QString("../energyCalaulate/DataBase.mdb");//F:/1/energyCalaulate/DataBase.mdb
db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName(QString("DRIVER={Microsoft Access Driver (*.mdb)};FIL={MS Access};DBQ=%1").arg(dir_file));
bool ok = db.open();
if(ok)
{
qDebug()<<"access数据库打开成功";
}
else
{
qDebug()<<"access数据库打开失败";
QMessageBox::warning(NULL,"warning","Access open fail");
return;
}
“…/”可以找到当前文件所在地址的相对路径,还有另外一种方法将文件保存在创建的工程文件夹下,就是通过QDir类。
QString dir = QDir::currentPath();
QDir dir_head(dir);
if(dir_head.cdUp())//cdUp()的作用是返回上一级目录,返回值是bool
{
qDebug()<<dir_head.path();//"F:/1"
dir_file = dir_head.path()+QString("/energyCalaulate/DataBase.mdb");
}
无论是"…/",还是QDir类,在网页调用exe程序的时候,似乎都无法识别路径,只能采用绝对路径才能调用成功。
dir_file = QString("F:/1/energyCalaulate/DataBase.mdb");