掲示板システム
ホーム
アクセス解析
カテゴリ
ログアウト
Zipファイルから無圧縮ファイルをStreamに展開するには? (ID:46022)
名前
ホームページ(ブログ、Twitterなど)のURL (省略可)
本文
初めまして。 XE4+FMXでTZipfileを使い、Zipファイルから特定ファイルをTStreamへ 展開できないか試しています。 Extractでファイル名を指定して直接ファイル書き出しは出来ますが、 Readを使ってStreamに書き出す際に不具合が発生します。 コードとしては var LStream : TStream; LZipFile : TZipFile; LocalHeader : TZipHeader; MemoryStream: TMemoryStream; begin LZipFile := TZipFile.Create; LZipFile.Open( 'TestZip.zip' , zmRead); LStream := TStream.Create; LZipFile.Read('data.bin', LStream, LocalHeader); MemoryStream := TMemoryStream.Create; MemoryStream.CopyFrom( LStream, 0 ); MemoryStream.SaveToFile( 'ExtractData.bin' ); MemoryStream.Free; LZipFile.Free; end; 取り出したいファイルの圧縮方法が、 "Deflate" の場合:正常に指定ファイルを書き出す。 "Stored (無圧縮)" の場合:Zipファイル全体を書き出す。 ようです。 こういった場合、圧縮方法をチェックし、Storedだった場合は別途処理を 行う必要があるのでしょうか?
←解決時は質問者本人がここをチェックしてください。
更新する
戻る
掲示板システム
Copyright 2021 Takeshi Okamoto All Rights Reserved.