我有一个资源文件
<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。
您应该将日志文件创建为独立文件,一切都会正常进行。不要嵌入到资源系统中。
关于c++ - Qt 资源文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6125387/