问题描述
|
我有一个资源文件
<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。这两个文件都位于该项目的目录/ home / template / _projects / 4_Disr中。
我误会了发生的事情,并准备相信克苏鲁。
有什么建议么?
解决方法
据我所知,封装在资源中的所有数据都是只读的。
rcc将所有资源编译成二进制形式,通常将它们压缩,因此您不能以写模式访问它们。
这意味着您文件夹中的文件会在编译时获取,并添加到文件.rcc中,该文件用作资源的源文件。磁盘上的文件只是从中汇编资源文件的源,程序不使用它们,而只是rcc。
您应该将日志文件创建为独立文件,并且一切正常。不要将其嵌入资源系统。