Пример #1
0
        private void WriteInode(BuilderContext context)
        {
            if (NumLinks != 1)
            {
                throw new IOException("Extended file records (with multiple hard links) not supported");
            }

            FillCommonInodeData(context);
            _inode.Type = InodeType.File;

            InodeRef = context.InodeWriter.Position;

            int totalSize = _inode.Size;

            _inode.WriteTo(context.IoBuffer, 0);
            if (_lengths != null && _lengths.Count > 0)
            {
                for (int i = 0; i < _lengths.Count; ++i)
                {
                    Utilities.WriteBytesLittleEndian(_lengths[i], context.IoBuffer, _inode.Size + (i * 4));
                }

                totalSize += _lengths.Count * 4;
            }

            context.InodeWriter.Write(context.IoBuffer, 0, totalSize);
        }