打开文件在qt中返回错误5

时间:2016-04-02 15:12:42

标签: c++ qt

我正在尝试使用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 ;
    }

1 个答案:

答案 0 :(得分:0)

在这里留下答案,供以后对QFile错误代码调试有疑问的人使用。


QFile.error()

Qfile.error()返回以下错误列表中的错误号,该错误列表来自文档here

enter image description 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()函数,您可以获取更详细的错误消息,并确定打开是由于被另一个进程使用还是由于路径不存在而失败,并相应地解决了问题。

希望这对以后遇到此问题的人有所帮助。