QFile不会打开该文件

时间:2013-03-25 16:09:18

标签: c++ file qt qfile

我有一个程序,我基本上从Qt网站上偷走了试图打开文件。该程序拒绝打开任何我为什么感到困惑的事情。我找了很多文档,但发现没有什么可以解释为什么它不起作用。

#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QFile>
#include <QTextStream>
#include <QString>
MainWindow::MainWindow(QWidget *parent) :
    QWidget(parent)
{
    QFile file("C:/n.txt");
    if (!file.open(QIODevice::ReadOnly | QIODevice::Text))
             return;
    QTextStream in(&file);
    QString f=in.readLine();
    lab =new QLabel("error",this);
    lab->setGeometry(100,100,100,100);
    lab->setText(f);

}

2 个答案:

答案 0 :(得分:6)

在打开文件之前,您始终可以查看存在:

QFile file("myfile.txt");
if (!file.exists()) {
    // react
}

如果文件存在但未打开,则可以获取错误状态和消息:

QString errMsg;
QFileDevice::FileError err = QFileDevice::NoError;
if (!file.open(QIODevice::ReadOnly)) {
    errMsg = file.errorString();
    err = file.error();
}

总是:如果文件是开放的,那么记得关闭它。在你的例子中,你没有:

file.close();

答案 1 :(得分:0)

FileError QFile::error()const 返回文件错误状态。 I / O设备状态返回错误代码。例如,如果open()返回false,或者读/写操作返回-1,则可以调用此函数以找出操作失败的原因。 另请参见unsetError()。

发布错误代码。它不应该是QFile文件(“C:\ n.txt”); \ /在Windows中?