我有这个小文件打开功能,使用QFile
,但在调试之后我注意到它正在跳过该功能 - 与未找到文件或编码错误有关吗?
QString s;
QFile file(QString::fromStdString(fileName));
if (file.open(QIODevice::ReadOnly | QIODevice::Text))
{
QTextStream in(&file);
while (!in.atEnd())
{
s = in.readLine();
shipHandler::lineParse(s);
}
}
我试图打开的文件是一个文本文件,它位于主文件夹中,包含所有其他标题+源文件。我正在将"file.txt"
传递给此函数。
答案 0 :(得分:1)
我怀疑问题是QFile
找不到文件。如果未指定完整路径,QFile将查找当前目录。当前目录是:QDir::currentPath()
首先尝试提供完整路径是否有效,如果有效,则需要输入' ships.txt'在正确的道路上。
我通常在项目中执行的操作是将文件放在EXE的同一文件夹中(或放在与EXE相同的目录中的文件夹中)。然后检索EXE的路径并使用它来形成文件的新路径。
例如:(未经测试!)
QString exePath = QCoreApplication::applicationDirPath()
QString shipsPath = exePath + QDir::separator() + 'ships.txt'