Nanook.QueenBee.Parser.PakEditor.removePadding C# (CSharp) Method

removePadding() private method

private removePadding ( string filename, byte padVal, long minSize ) : long
filename string
padVal byte
minSize long
return long
        private long removePadding(string filename, byte padVal, long minSize)
        {
            //remove all padding
            bool isPadVal = true;
            byte[] padData = new byte[(int)_pakFormat.ZlibBlockPad];

            long pos;
            long ret;
            int read;

            using (FileStream fs = new FileStream(filename, FileMode.Open, FileAccess.ReadWrite))
            {
                while (isPadVal && fs.Length > _pakFormat.ZlibBlockPad && (minSize == 0 || fs.Length > minSize))
                {
                    if (fs.Length - _pakFormat.ZlibBlockPad < minSize)
                        fs.Seek(minSize, SeekOrigin.Begin);
                    else
                        fs.Seek(fs.Length - _pakFormat.ZlibBlockPad, SeekOrigin.Begin);
                    pos = fs.Position;
                    read = fs.Read(padData, 0, padData.Length);
                    int i;
                    for (i = 0; i < read; i++)
                    {
                        if (!(isPadVal = (padData[read - (i + 1)] == padVal)))
                            break;
                    }

                    if (i != 0)
                        fs.SetLength(pos + (long)(read - i));
                    if (i != read)
                        break;
                }
                ret = fs.Length;
            }

            return ret;
        }