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); }
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; }
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(); }