3

我编写了一个简单的代码来使用 Qt 5 的 QFile 打开纯文本文件,如下所示;

// main.cpp
#include <iostream>
using std::endl;
using std::cout;

#include <QCoreApplication>
#include <QFile>
#include <QIODevice>

int main(int argc, char *argv[])
{
    QCoreApplication a(argc, argv);

    QFile plainFile("plain.txt");

    if(plainFile.open(QIODevice::ReadOnly | QIODevice::Text))
    {
        cout << "File opened successfull" << endl;
        plainFile.close();
    }
    else{
        cout << "could not open file." << endl;
    }
    return a.exec();
}

编译和运行时的输出是“无法打开文件”。我做错了什么?

4

2 回答 2

2

可能是因为plain.txt当前工作目录或 PATH 中不存在。确保文件位于工作目录中或将绝对路径传递给QFile.

也看看QFile::exists返回什么。

于 2013-08-10T06:59:11.507 回答
0

Wouter Huysentruit 是对的。

请记住,默认情况下,当您从 QtCreator 工作目录运行应用程序时,例如C:\Projects\build-Test-Desktop_Qt_5_1_0_MinGW_32bit-Debug. 但是您的.exe文件位于C:\Projects\build-Test-Desktop_Qt_5_1_0_MinGW_32bit-Debug\Debug.

当您.exe直接运行时,工作目录将是该文件夹,现在放置该文件。

这样你就可以:

1.通过绝对路径。

2.将文件放在当前工作目录中(我想这是最好的解决方案)。

3.只需更改相对路径:QFile plainFile("debug/plain.txt");

于 2013-08-10T07:19:56.437 回答