Files
BeyondTools/BeyondTools.VFS/Extensions/StreamExtensions.cs
2025-11-27 06:42:57 +07:00

34 lines
933 B
C#

using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace BeyondTools.VFS.Extensions
{
internal static class StreamExtensions
{
public static void CopyBytes(this Stream inStream, Stream outStream, long? count = null)
{
if (count == null)
{
inStream.CopyTo(outStream);
return;
}
long readBytes = 0L;
var buffer = new byte[64 * 1024];
do
{
var toRead = Math.Min((long)(count - readBytes), buffer.LongLength);
var readNow = inStream.Read(buffer, 0, (int)toRead);
if (readNow == 0)
break;
outStream.Write(buffer, 0, readNow);
readBytes += readNow;
} while (readBytes < count);
}
}
}