diff --git a/src/System.IO.Abstractions/FileStream.cs b/src/System.IO.Abstractions/FileStream.cs new file mode 100644 index 000000000..21dc1fef4 --- /dev/null +++ b/src/System.IO.Abstractions/FileStream.cs @@ -0,0 +1,58 @@ +namespace System.IO.Abstractions +{ + /// + /// A that has properties similar to + /// + public class FileStream : Stream + { + private readonly Stream _wrappedStream; + + /// + /// Constructor for + /// + /// The underlying wrapped + /// The name of the underlying stream object + public FileStream(Stream wrappedStream, string name) + { + _wrappedStream = wrappedStream; + + Name = name; + } + + /// + /// Name of the underlying stream object. + /// See + /// + public string Name { get; } + + /// + public override bool CanRead => _wrappedStream.CanRead; + + /// + public override bool CanSeek => _wrappedStream.CanSeek; + + /// + public override bool CanWrite => _wrappedStream.CanWrite; + + /// + public override long Length => _wrappedStream.Length; + + /// + public override long Position { get => _wrappedStream.Position; set => _wrappedStream.Position = value; } + + /// + public override void Flush() => _wrappedStream.Flush(); + + /// + public override int Read(byte[] buffer, int offset, int count) => _wrappedStream.Read(buffer, offset, count); + + /// + public override long Seek(long offset, SeekOrigin origin) => _wrappedStream.Seek(offset, origin); + + /// + public override void SetLength(long value) => _wrappedStream.SetLength(value); + + /// + public override void Write(byte[] buffer, int offset, int count) => _wrappedStream.Write(buffer, offset, count); + } +}