我有一个代码:

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()为false,并且我收到了设备未打开的警告/错误消息。

我尝试了相对路径,例如

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


但是我想出的所有方法都不是很好。

最佳答案

您应该能够对所有与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");
}

09-25 18:28