我正在尝试使用qt打开一个文件进行阅读而它没有打开它,它会返回错误5.我不知道为什么?
loadObjModel("box.obj");
QFile obj_file(path) ;
QString errMsg;
QFileDevice::FileError err = QFileDevice::NoError;
if (!obj_file.open(QIODevice::ReadOnly)) {
errMsg = obj_file.errorString();
err = obj_file.error();
qDebug() << QString(" err %1").arg(err) ;
}
if (!obj_file.open(QFile::ReadOnly))
{
qDebug() << QString("cannot open %1").arg(path) ;
return ;
}
答案 0 :(得分:0)
在这里留下答案,供以后对QFile错误代码调试有疑问的人使用。
QFile.error()
Qfile.error()返回以下错误列表中的错误号,该错误列表来自文档here:
因此,如果要使用OpenError运行此代码段,结果将是FileError代码:
qDebug() << " Could not open file for writing:" << obj_file.error();
无法打开文件进行写入:5
QFile.errorString()
错误代码(5)表示错误的一般类别,但是要更深入地探究错误的原因,更方便的函数是errorString()函数(在问题中分配给errMsg):>
qDebug() << " Could not open file for writing:" << obj_file.errorString();
无法打开文件进行写入:“该进程无法访问该文件,因为该文件正在被另一个进程使用。”
通过使用errorString()函数,您可以获取更详细的错误消息,并确定打开是由于被另一个进程使用还是由于路径不存在而失败,并相应地解决了问题。
希望这对以后遇到此问题的人有所帮助。