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

C++ 我可以使用wxwidgets读取zip存档吗?,c++,wxwidgets,C++,Wxwidgets,我想在zip存档中读取xml文件或文本文件,而不从存档中提取它。我可以不从zip存档中提取而直接执行吗?是的,您可以,应该是您正在寻找的 wxZipInputStream zip(in); while (entry.reset(zip.GetNextEntry()), entry.get() != NULL) { wxString name = entry->GetName(); name = str

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

是的,您可以,应该是您正在寻找的

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存档中提取

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文件。以上是示例代码。

必须以某种方式提取。您可以将提取的文件存储在磁盘或内存中,但您需要提取它。根据它的显示,您可以(显然提取是必要的)。好的。有没有其他方法可以读取必要的文件而不从zip存档中提取?除了wxwidgetsHow,你能从档案中读取一些东西而不提取它吗?这个问题完全违背逻辑。这几乎就像OP不了解ZIP压缩,但觉得他们是解决问题的合适开发人员。无论如何,这是一个XY问题,要求解决错误的问题。投票结束。