public override void  FlushBuffer(byte[] src, int len)
        {
            byte[] buffer;
            int    bufferPos = 0;

            while (bufferPos != len)
            {
                int bufferNumber      = (int)(pointer / BUFFER_SIZE);
                int bufferOffset      = (int)(pointer % BUFFER_SIZE);
                int bytesInBuffer     = BUFFER_SIZE - bufferOffset;
                int remainInSrcBuffer = len - bufferPos;
                int bytesToCopy       = bytesInBuffer >= remainInSrcBuffer ? remainInSrcBuffer : bytesInBuffer;

                if (bufferNumber == file.buffers.Count)
                {
                    buffer = file.AddBuffer(BUFFER_SIZE);
                }
                else
                {
                    buffer = (byte[])file.buffers[bufferNumber];
                }

                Array.Copy(src, bufferPos, buffer, bufferOffset, bytesToCopy);
                bufferPos += bytesToCopy;
                pointer   += bytesToCopy;
            }

            if (pointer > file.length)
            {
                file.SetLength(pointer);
            }

            file.SetLastModified(System.DateTime.Now.Ticks);
        }
 public override void  Flush()
 {
     file.SetLastModified((DateTime.Now.Ticks / TimeSpan.TicksPerMillisecond));
     SetFileLength();
 }
Beispiel #3
0
 public override void  Flush()
 {
     file.SetLastModified((System.DateTime.Now.Ticks - 621355968000000000) / 10000);
     SetFileLength();
 }