ZIP展開について


無断使用  2007-12-19 16:52:22  No: 138456  IP: 192.*.*.*

<環境>
・VisualStudio2005(TeamEdition For Software Architects)
・Windows XP
・VB.NET

ZIPファイルについてお聞きしたいことがあります。
圧縮されたZIPファイルをHDD上に解凍しないで
圧縮されている中身のTEXTファイルを読み込んだりなどは可能でしょうか?

編集 削除
魔界の仮面弁士  2007-12-23 14:34:21  No: 138457  IP: 192.*.*.*

> 圧縮されたZIPファイルをHDD上に解凍しないで
「解凍しないで」という表現が出てくるという事は、
一時ファイルとして展開して、それを利用する方法であれば、
既に実装できている…という状況のようですね。

そうすると、そもそも何故、HDDを使いたく無いのでしょうか?

たとえば、セキュリティ上の問題などで一時ファイルへの展開を
禁じているのなら、そもそも、圧縮データ(ZIP)自体もファイル化せず、
すべてストリームとして扱うような運用を検討すべきかも知れません。


> 圧縮されている中身のTEXTファイルを読み込んだりなどは可能でしょうか?

一応、こんな方法がとれるかと。

1) vjslib.dll を参照設定して、java.util.zip.ZipFile クラスで ZIP を開く。
2) getEntry メソッドにTEXTファイル名を指定するか、または entries メソッドで
  列挙して、TEXTファイルのエントリを java.util.zip.ZipEntry として取り出す。
3) ZipEntry の read メソッドを使えば、その内容を SByte 配列型で得る。
4) その配列を、Buffer.BlockCopy メソッドで Byte 配列に変換。
5) System.Text.Encoding クラスを使い、Byte 配列を文字列に変換する。

編集 削除