我有一个代码:
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");
}