<環境>
・VisualStudio2005(TeamEdition For Software Architects)
・Windows XP
・VB.NET
ZIPファイルについてお聞きしたいことがあります。
圧縮されたZIPファイルをHDD上に解凍しないで
圧縮されている中身のTEXTファイルを読み込んだりなどは可能でしょうか?
> 圧縮された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 配列を文字列に変換する。