Я хочу прочитать xml-файл или текстовый файл в zip-архиве, не извлекая его из архива. Могу ли я сделать это напрямую, не извлекая его из zip-архива?Могу ли я читать zip-архив с помощью wxwidgets?
-2
A
ответ
2
Да, вы можете, wxZipInputStream должно быть тем, что вы ищете.
0
wxZipInputStream zip(in);
while (entry.reset(zip.GetNextEntry()), entry.get() != NULL) {
wxString name = entry->GetName();
name = strPageName.BeforeLast('\\') + wxFileName::GetPathSeparator() + name;
zip.OpenEntry(*entry.get());
wxFileOutputStream file(name);
if (!file) {
wxLogError(_T("Can not create file '") + name + _T("'."));
break;
}
zip.Read(file);
Я пробовал использовать wxZipInputStream. Да, я могу читать файлы после извлечения из архива. Мне нравится знать, могу ли я читать эти файлы без извлечения из архива.
0
wxFileSystem::AddHandler(new wxZipFSHandler);
wxFileSystem fs;
wxFSFile *zip = fs.OpenFile("d:\\test.zip#zip:test.txt");
if(zip!=NULL)
{
wxInputStream *in = zip->GetStream();
if (in != NULL)
{
wxFileOutputStream out("d:\\testout.txt");
out.Write(*in);
out.Close();
}
delete zip;
}
Да, мы можем прочитать zip-файл непосредственно из архива. Вышеприведенный примерный код.
Не исключено, что это так или иначе. Вы можете сохранить извлеченный файл на диске или в памяти, но вам нужно его извлечь. –
В соответствии с ** [Руководством] (http://docs.wxwidgets.org/3.1/overview_archive.html) **, похоже, вы можете (очевидно, необходимо извлечь извлечения). – Galik
Хорошо. Есть ли другой способ прочитать необходимый файл без извлечения из zip-архива? Помимо wxwidgets – sangz