QFile没有打开/查找文件

时间:2014-04-30 06:55:39

标签: c++ qt file

我有这个小文件打开功能,使用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"传递给此函数。

1 个答案:

答案 0 :(得分:1)

我怀疑问题是QFile找不到文件。如果未指定完整路径,QFile将查找当前目录。当前目录是:QDir::currentPath()

首先尝试提供完整路径是否有效,如果有效,则需要输入' ships.txt'在正确的道路上。

我通常在项目中执行的操作是将文件放在EXE的同一文件夹中(或放在与EXE相同的目录中的文件夹中)。然后检索EXE的路径并使用它来形成文件的新路径。

例如:(未经测试!)

QString exePath = QCoreApplication::applicationDirPath()
QString shipsPath = exePath + QDir::separator() + 'ships.txt'