示例#1
0
        public void  FillBuffer(byte[]   buffer,
                                ref int nextIndex
                                )
        {
            int indexStart = nextIndex;

            int x = 0;

            Constants.FillBuffer(buffer, ref nextIndex, allocated);
            Constants.FillBuffer(buffer, ref nextIndex, status);
            Constants.FillBuffer(buffer, ref nextIndex, startSector);
            Constants.FillBuffer(buffer, ref nextIndex, endSector);
            Constants.FillBuffer(buffer, ref nextIndex, currentAccessSector);

            for (x = 0; x < fileName.Length; x++)
            {
                buffer[nextIndex] = (byte)fileName[x];  nextIndex++;
            }

            if (dateTimeStamp == null)
            {
                dateTimeStamp = new SipperDateTimeStamp(DateTime.Now);
            }

            dateTimeStamp.FillBuffer(buffer, ref nextIndex);

            for (x = 0; x < description.Length; x++)
            {
                buffer[nextIndex] = (byte)description[x];  nextIndex++;
            }

            if (unUsedSpace != null)
            {
                for (x = 0; x < unUsedSpace.Length; x++)
                {
                    buffer[nextIndex] = unUsedSpace[nextIndex];  nextIndex++;
                }
            }

            int indexEnd       = nextIndex;
            int unUsedSpaceLen = Constants.LOGICAL_BLOCK_SIZE - (indexEnd - indexStart);

            for (x = 0; x < unUsedSpaceLen; x++)
            {
                buffer[nextIndex] = 0;  nextIndex++;
            }
        } /* FillBuffer */