我可以使用wxwidgets读取zip存档吗?

时间:2016-10-27 12:20:22

标签: c++ wxwidgets

我想在zip存档中读取xml文件或文本文件,而不从存档中提取它。如果不从zip存档中提取它,我可以直接进行吗?

3 个答案:

答案 0 :(得分:1)

是的,你可以,wxZipInputStream应该是你想要的。

答案 1 :(得分: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。是的,我可以在从存档中提取后读取文件。我想知道是否可以在不从zip存档中提取的情况下读取这些文件。

答案 2 :(得分: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文件。以上是示例代码。