public void Save(string fileName)
{
FileStream f = System.IO.File.OpenWrite(fileName);
var gz = new GZipStream(f, CompressionLevel.Optimal);
gz.Write(BitConverter.GetBytes(_files.Count), 0, 4);
foreach (File file in _files)
{
byte[] binName = Encoding.Default.GetBytes(file.FileName);
gz.Write(BitConverter.GetBytes(binName.Length), 0, 4);
gz.Write(binName, 0, binName.Length);
gz.Write(BitConverter.GetBytes(file.Content.Length), 0, 4);
gz.Write(file.Content, 0, file.Content.Length);
}
gz.Flush();
gz.Close();
f.Close();
}