我写了一个简单的代码,用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();
}
编译和运行时的输出是“无法打开文件”。 我做错了什么?
答案 0 :(得分:2)
可能是因为plain.txt
在当前工作目录或PATH中不存在。确保该文件位于工作目录中或将绝对路径传递给QFile
。
另请参阅QFile::exists
返回的内容。
答案 1 :(得分: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");