FileDataBlock GetNextFileDataBlock(DataBlock block, long dataOffset, out long nextDataOffset) { // Iterate over the remaining blocks until a file block is encountered. nextDataOffset = dataOffset + block.Length; block = block.NextBlock; while (block != null) { FileDataBlock fileBlock = block as FileDataBlock; if (fileBlock != null) { return fileBlock; } nextDataOffset += block.Length; block = block.NextBlock; } return null; }