Gibt es eine Möglichkeit Stream.CopyTo zu verwenden, um nur bestimmte Anzahl von Bytes in den Zieldatenstrom zu kopieren? Was ist die beste Problemumgehung?Kann Stream.CopyTo nur eine bestimmte Anzahl von Bytes kopieren?
Edit:
Meine Abhilfe (einige Code weggelassen):
internal sealed class Substream : Stream
{
private readonly Stream stream;
private readonly long origin;
private readonly long length;
private long position;
public Substream(Stream stream, long length)
{
this.stream = stream;
this.origin = stream.Position;
this.position = stream.Position;
this.length = length;
}
public override int Read(byte[] buffer, int offset, int count)
{
var n = Math.Max(Math.Min(count, origin + length - position), 0);
int bytesRead = stream.Read(buffer, offset, (int) n);
position += bytesRead;
return bytesRead;
}
}
dann kopieren n Bytes:
var substream = new Substream(stream, n);
substream.CopyTo(stm);
Die Anzahl der Bytes lesen und in den Zieldatenstrom schreiben? – carlosfigueira