2016-10-27 8 views
-2

xmlファイルまたはテキストファイルをアーカイブから抽出せずにzipアーカイブで読みたいとします。 zipアーカイブから直接抽出する必要はありませんか?wxwidgetsを使用してzipアーカイブを読むことはできますか?

+0

何らかの方法で抽出するのではなく、抽出したファイルはディスクやメモリに保存できますが、抽出する必要があります。 –

+0

** [The Manual](http://docs.wxwidgets.org/3.1/overview_archive.html)**によると、あなたはできると思われる(明らかに抽出が必要)。 – Galik

+0

zipアーカイブから抽出せずに必要なファイルを読み取る他の方法はありますか? wxwidgets以外 – sangz

答えて

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を試してみました。はい、私はアーカイブから抽出した後でファイルを読むことができます。私はzipアーカイブから抽出せずにこれらのファイルを読むことができるかどうかを知りたい。

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ファイルを直接読み取ることができます。上記はサンプルコードです。

関連する問題