private long RequiredPsarcSize()
{
if (_toc.Count > 0)
{
//get last_entry.offset+it's size
var last_entry = _toc[_toc.Count - 1];
var TotalLen = last_entry.Offset;
var zNum = _zBlocksSizeList.Length - last_entry.zIndexBegin;
for (int z = 0; z < zNum; z++)
{
var num = _zBlocksSizeList[last_entry.zIndexBegin + z];
TotalLen += (num == 0) ? _header.BlockSizeAlloc : num;
}
return (long)TotalLen;
}
return _header.TotalTOCSize; //already read
}