using System; using System.IO; namespace ScreenConnect; public class MemoryFileData : FileData { private string filePath; private ArraySegment data; public override string FilePath => filePath; public override long Size => data.Count; public override DateTime CreationTime => default(DateTime); public override DateTime LastWriteTime => default(DateTime); public override DateTime LastAccessTime => default(DateTime); public override bool IsDirectory => false; public MemoryFileData(string filePath, ArraySegment data) { this.filePath = filePath; this.data = data; } public MemoryFileData(string filePath, MemoryStream memoryStream) : this(filePath, memoryStream.GetAllBytes()) { } public MemoryFileData(string filePath, byte[] data) : this(filePath, new ArraySegment(data.AssertArgumentNonNull("data"), 0, data.Length)) { } public override void Dispose() { } public override Stream OpenReadStream() { return new MemoryStream(data.Array, data.Offset, data.Count, writable: false, publiclyVisible: true); } }