我正在尝试读取已添加到项目资源中的 csv 文件。 然而,当我尝试打开该文件时,它失败了。
std::ifstream csvFile;
csvFile.open(fileName);
这就是我尝试打开它的方式。资源中的其他文件都可以(所有其他文件都是图像,并且它们加载和显示正确)。 我正在使用 Qt5.7 和 Qt Creator 4.0.2
有什么提示吗?
失败的原因是 Qt 资源并不是真正的文件,可以由每个处理文件的工具打开。相反,添加到 Qt 项目资源的文件内容会内置到生成的可执行文件中。
好消息是 Qt 具有允许您像使用真实文件一样使用这些资源的功能:
QString myResourceFile = ":/resources/file.csv";
QFile file(myResourceFile);
if (file.open(QIODevice::ReadOnly)) {
QByteArray contents = file.readAll();
// process file's contents
}
else {
// Whoops, something went wrong, bad path to resource?
}