Файлы с ресурсами Qt

#c #qt

Вопрос:

У меня есть файл ресурсов

 <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. Я неправильно понимаю происходящее и приготовился поверить в Ктулху. Есть какие-нибудь предложения?

Ответ №1:

Насколько я знаю, все данные, инкапсулированные в ресурсе, доступны только для чтения… rcc компилирует все ресурсы в двоичную форму, обычно сжимает их, поэтому вы не можете получить к ним доступ в режиме записи.

Это означает, что файлы, находящиеся в вашей папке, взяты во время компиляции и добавлены в файл .rcc, который используется в качестве исходного файла для ваших ресурсов. Файлы на вашем диске-это просто источник, из которого собирается файл ресурсов, ваша программа их не использует, только rcc.

Вы должны создать файл журнала как отдельный файл, и все будет работать нормально. Не внедряйте его в систему ресурсов.

Комментарии:

1. Спасибо, чувак!=) Я создал его автономно, и он работал, но не работал при наличии ресурсов. Вы прояснили, что происходит. Спасибо еще раз!