using System.IO; namespace UnityFS { public static class StreamExtensions { private const int BufferSize = 81920; public static void CopyTo(this Stream source, Stream destination, long size) { var buffer = new byte[BufferSize]; for (var left = size; left > 0; left -= BufferSize) { int toRead = BufferSize < left ? BufferSize : (int)left; int read = source.Read(buffer, 0, toRead); destination.Write(buffer, 0, read); if (read != toRead) { return; } } } public static byte[] ReadAllBytes(this Stream source) { source.Position = 0; var bytes = new byte[source.Length]; source.Read(bytes, 0, bytes.Length); return bytes; } } }