#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. Спасибо, чувак!=) Я создал его автономно, и он работал, но не работал при наличии ресурсов. Вы прояснили, что происходит. Спасибо еще раз!