Как клонировать поток произвольного доступа? - PullRequest
0 голосов
/ 17 декабря 2018

Я хочу клонировать IRandomAccessStream.Я попытался CloneStream (), чтобы клонировать поток, но это не поддерживается.Есть ли способ клонировать поток произвольного доступа.

Спасибо, Santhiya A

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

Вы можете попробовать преобразовать его в byte[], а затем клонировать byte[] в новый IRandomAccessStream.

    public async Task<IRandomAccessStream> CloneIRandomeAccessStream(IRandomAccessStream randomAccessStream)
    {
        var reader = new DataReader(randomAccessStream.GetInputStreamAt(0));
        byte[] bytes = new byte[randomAccessStream.Size];
        await reader.LoadAsync((uint)randomAccessStream.Size);
        reader.ReadBytes(bytes);
        MemoryStream stream = new MemoryStream(bytes.ToArray());
        IRandomAccessStream ClonerandomAccessStream = stream.AsRandomAccessStream();
        return ClonerandomAccessStream;
    }
0 голосов
/ 17 декабря 2018

Вы можете использовать метод CopyTo

https://docs.microsoft.com/en-us/dotnet/api/system.io.stream.copyto?view=netframework-4.7.2

...