Пример #1
0
            private void parse(Stream stream, long start, long finish)
            {
                byte[] eol2 = new byte[m_EOL.Length << 1];
                Array.Copy(m_EOL, eol2, m_EOL.Length); Array.Copy(m_EOL, 0, eol2, m_EOL.Length, m_EOL.Length);

                long eol2PosAfterHeader = StreamHelpers.Find(stream, eol2, start, finish);

                if (eol2PosAfterHeader == StreamHelpers.NOT_FOUND_POS)
                {
                    throw new NFXException(StringConsts.MULTIPART_DOUBLE_EOL_ISNT_FOUND_AFTER_HEADER_ERROR + this.GetType().Name + ".Parse");
                }

                string str = StreamHelpers.GetString(stream, start, eol2PosAfterHeader - 1);

                m_Parameters = MultiPartParameters.Parse(str, m_EOL, m_Encoding);

                m_Content       = new byte[finish - eol2PosAfterHeader - eol2.Length + 1];
                stream.Position = eol2PosAfterHeader + eol2.Length;
                stream.Read(m_Content, 0, m_Content.Length);

                m_Content       = new byte[finish - (eol2PosAfterHeader + eol2.Length) + 1];
                stream.Position = eol2PosAfterHeader + eol2.Length;
                stream.Read(m_Content, 0, m_Content.Length);

                if (m_Parameters.IsField)
                {
                    m_ContentString = m_Encoding.GetString(m_Content);
                }
            }