Ionic zipを使用すると、既存のファイルをzipオブジェクトに追加して、zipファイルを作成できます。しかし、作成したzipファイルからそれらのbyte []を読み取ってサーバーに送信していることを考えると、サーバーにzipを保存するには、そのbyte[]からzipファイルを再度作成する必要があります。どうすればこれを達成できますか?
私はC#を使用しています。
私があなたの質問を正しく理解しているなら、あなたbyte[]
はネットワークを介してあなたのデータ配列を取得し、そのデータをzipファイルに保存したいですか?あなたはあなたが得たものからあなたが作成したものZipEntry
から新しいものを作成することができます(ドキュメントに示されているように):MemoryStream
byte[]
byte[] data = MethodThatReceivesYourDataOverTheNet();
using (MemoryStream stream = new MemoryStream(data))
{
using (ZipFile zip = new ZipFile())
{
zip.AddEntry("name_of_the_file_in_the_arhive.bin", "base", stream);
zip.Save("example.zip");
}
}
あなたが何をしているのかはあなたの質問からは本当に明確ではありません-しかし、ディスクに保存してからデータを取得するためにリロードすることを避けようとしている場合は、:に保存してMemoryStream
ください
byte[] data;
using (MemoryStream ms = new MemoryStream())
{
zipFile.Save(ms);
data = ms.ToArray();
}
// Do whatever with data.
MemoryStream.GetBuffer()
または、別のコピーを作成しないようにするために使用します。
byte[] buffer;
int length;
using (MemoryStream ms = new MemoryStream())
{
zipFile.Save(ms);
buffer = ms.ToArray();
length = ms.Length;
}
// Now use buffer, but only up to "length"...