private void WriteManifest()
{
if (_toc.Count == 0)
{
_toc.Add(new Entry() { Name = "NamesBlock.bin" });
}
if (_toc[0].Name == "")
{
_toc[0].Name = "NamesBlock.bin";
}
if (_toc[0].Name != "NamesBlock.bin")
{
_toc.Insert(0, new Entry() { Name = "NamesBlock.bin" });
}
var binaryWriter = new BinaryWriter(new MemoryStream());
for (int i = 1, len = _toc.Count; i < len; i++)
{
//'/' - unix path separator
var bytes = Encoding.ASCII.GetBytes(_toc[i].Name);
binaryWriter.Write(bytes);
//'\n' - unix line separator
if (i == len - 1)
{
binaryWriter.BaseStream.Position = 0;
continue;
}
binaryWriter.Write('\n'); //data.WriteByte(0x0A);
}
_toc[0].Data = binaryWriter.BaseStream; //dunno how to get buffer, seek is required
}