我有一个资源文件
<RCC>
<qresource prefix="/">
<file>_initData</file>
<file>_LOGFILE</file>
</qresource>
</RCC>
在我的代码中,我轻松访问第一个但无法访问第二个。
QFile file(":/_initData");
if (!file.open(QIODevice::ReadOnly)) {
qDebug() << "Cannot open file to fill avtomatTable";
}
工作得很好
QFile file(":/_LOGFILE");
if (!file.open(/*QIODevice::Truncate | */QIODevice::WriteOnly)) {
qDebug() << "Cannot open LOGFILE";
}
永不运作
我正在使用KUbuntu。这两个文件都位于此项目的dir / home / template / _projects / 4_Disr中。 我误解了正在发生的事情,并准备好相信克苏鲁。 有什么建议吗?
答案 0 :(得分:7)
据我所知,封装在资源中的所有数据都是只读的...... rcc将所有资源编译成二进制形式,通常会压缩它们,因此您无法在写入模式下访问它们。
这意味着文件夹中的文件在编译时获取并添加到文件.rcc中,该文件用作资源的源文件。磁盘上的文件只是来自哪个资源文件的源,你的程序不使用它们,只是rcc。
您应该将日志文件创建为独立文件,并且一切正常。不要将其嵌入资源系统。