QFile错误:设备未打开

时间:2016-04-10 09:41:59

标签: qt qfile

我有一个代码:

int actualSize = 8;
QFile tableFile("C:\\Users\\Ms\\Documents\\L3\\table"+QString::number(actualSize)+".txt");
QTextStream in(&tableFile);
QString oneLine;
oneLine.append(in.readAll());
if(tableFile.exists())
{
    messageLabel->setText(oneLine);
}else
{
    messageLabel->setText("Not open");
}

C:\Users\Ms\Documents\L3\文件夹中,我有一个“table8.txt”文件。但是messageLabel(这是一个QLabel)将有一个“未打开”文本,oneLine为空,tableFile.exists()为空,我的设备未打开警告/错误。< / p>

我试过相对路径,比如

QFile tableFile("table"+QString::number(actualSize)+".txt");

但我提出的方法都没有。

1 个答案:

答案 0 :(得分:1)

您应该能够为所有与QFile相关的路径使用/分隔符。在您阅读之前打开 文件,在完成后关闭

int actualSize = 8;
QFile tableFile("C:/Users/Ms/Documents/L3/table"+QString::number(actualSize)+".txt");
if(tableFile.exists() && tableFile.open(QIODevice::ReadOnly | QIODevice::Text))
{
    QTextStream in(&tableFile);
    QString oneLine;
    oneLine.append(in.readAll());
    messageLabel->setText(oneLine);
    tableFile.close();
} else
{
    messageLabel->setText("Not open");
}