QFile 错误:设备未打开
Posted
技术标签:
【中文标题】QFile 错误:设备未打开【英文标题】:QFile error : device not open 【发布时间】:2016-04-10 09:41:59 【问题描述】:我有一个代码:
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()
是错误的,并且我得到了一个设备未打开警告/错误。
我试过相对路径,比如
QFile tableFile("table"+QString::number(actualSize)+".txt");
但我想出的方法都不好。
【问题讨论】:
open
方法的调用在哪里?
tableFile.open(QIODevice::ReadOnly | QIODevice::Text);我添加了这一行,它有效,谢谢
【参考方案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");
【讨论】:
以上是关于QFile 错误:设备未打开的主要内容,如果未能解决你的问题,请参考以下文章