引入 ICSharpCode.SharpZipLib.dll
命名空间 using ICSharpCode.SharpZipLib.Zip;
压缩
byte[] data=Encoding.UTF8.GetBytes("字符串");
MemoryStream mem = new MemoryStream ();
//BinaryWriter bytes = new BinaryWriter(mem, Encoding.UTF8);
ZipOutputStream zipOutputStream1 = new ZipOutputStream(mem);
ZipEntry zipEntry1 = new ZipEntry("实体一");
zipOutputStream1.PutNextEntry(zipEntry1);
zipOutputStream1.Write(data, 0, data.Length);
zipOutputStream1.Close();
FileStream fs = new FileStream(path, FileMode.Create);
BinaryWriter w = new BinaryWriter(fs);
w.Write(mem.ToArray());
fs.Close();
mem.Close();
解压
FileStream fs = File.OpenRead (ofn.file);
int length = (int)fs.Length;
byte[] data = new byte[length];
fs.Position = 0;
fs.Read(data, 0, length);
MemoryStream dozip = new MemoryStream(data);
MemoryStream unzip = new MemoryStream();
ZipInputStream zipInputStream2 = new ZipInputStream(dozip);
ZipEntry zipEntry2 = zipInputStream2.GetNextEntry(); // 获取一个压缩实体
byte[] tBytesBuffer = new byte[4096];
int ReadCount = 0;
while ((ReadCount = zipInputStream2.Read(tBytesBuffer, 0, 4096)) != 0) // 每次4KB,解压到内存流。
{
unzip.Write(tBytesBuffer, 0, ReadCount);
}
string str=System.Text.Encoding.Default.GetString(unzip.ToArray());
Debug.Log (str);