Exemplo n.º 1
0
        public static FileType FromStream(Stream stream, string extension)
        {
            if (stream == null)
            {
                throw new ArgumentNullException("stream");
            }
            if (extension == null)
            {
                throw new ArgumentNullException("extension");
            }

            FileType fileType = ImageFileType.FromExtension(extension);

            if (fileType != null)
            {
                return(fileType);
            }

            fileType = TextFileType.FromStream(stream, extension);

            if (fileType != null)
            {
                return(fileType);
            }

            return(BinaryFileType);
        }
Exemplo n.º 2
0
        private Stream BuildStream(Text text, TextFileType fileType)
        {
            var preamble = fileType.Encoding.GetPreamble();

            var stream = new MemoryStream(text.Content.Length + preamble.Length);

            var data = fileType.Encoding.GetBytes(text.Content);

            stream.Write(preamble, 0, preamble.Length);
            stream.Write(data, 0, data.Length);
            stream.Position = 0;

            return stream;
        }
Exemplo n.º 3
0
        public void LoadStreams(IStream leftStream, FileType leftFileType, byte[] leftData, IStream rightStream, FileType rightFileType, byte[] rightData)
        {
            _unifiedViewer.SelectDetails(leftStream, leftFileType, rightStream, rightFileType);
            _sideBySideViewer.SelectDetails(leftStream, leftFileType, rightStream, rightFileType);

            _leftData = leftData;
            _leftFileType = (TextFileType)leftFileType;
            _rightData = rightData;
            _rightFileType = (TextFileType)rightFileType;

            int leftBomSize = _leftFileType != null ? _leftFileType.Encoding.GetPreamble().Length : 0;
            int rightBomSize = _rightFileType != null ? _rightFileType.Encoding.GetPreamble().Length : 0;

            _leftText = new Text(
                _leftData == null
                ? String.Empty
                : _leftFileType.Encoding.GetString(_leftData, leftBomSize, _leftData.Length - leftBomSize)
            );
            _rightText = new Text(
                _rightData == null
                ? String.Empty
                : _rightFileType.Encoding.GetString(_rightData, rightBomSize, _rightData.Length - rightBomSize)
            );

            LoadDiff();
        }