.NETでZipPackageクラスを使用していましたが、シンプルで直感的なAPIが本当に好きです。エントリから読み込むときは、entry.GetStream()を実行し、このストリームから読み込みます。エントリの書き込み/更新時には、entry.GetStream(FileAccess.ReadWrite)を実行してこのストリームに書き込みます。非常にシンプルで便利なのは、ストリームが元々どこから来ているのかわからない他のコードに読み書きを渡すことができるからです。.NET ZipPackageとDotNetZipをストリームに入力するとき
ZipPackage-APIにはLastModifiedなどのエントリプロパティのサポートが含まれていないので、私はDotNetZipなど他のzip-apiを探しています。しかし、私はそれをどのように使用するかについて少し混乱しています。たとえば、エントリから読み込みたい場合は、最初にEntry全体をMemoryStreamに抽出し、最初に検索してこのストリームを他のコードに渡す必要があります。また、エントリに書き込むためには、ZipEntry自身が読み込めるストリームを入力する必要があります。これは私にとっては非常に後方にあるようです。このAPIを間違った方法で使用していますか?
ZipEntryは、ファイルが格納されているディスクから直接ファイルを引き渡し、読者が読み込むときにファイルを展開することはできませんか?最初に完全にメモリに抽出する必要がありますか?私は専門家ではありませんが、私にとっては間違っているようです。
私がDotNetZipについて読んだことのうち、ディスクから直接ストリームを解凍し、メモリにバッファリングすることなくディスクにストリーム圧縮することができるようです。しかし、私は間違っているかもしれません。これが当てはまらない場合は、DotNetZipを再度使用して再考する必要があります。私は本当に圧縮は必要ありません。私は圧縮サポートよりも直接ストリーミングを好むだろう。 –