Windows 8 将Windows.Storage.Streams.irandomaccesstream转换为System.IO.Stream

Windows 8 将Windows.Storage.Streams.irandomaccesstream转换为System.IO.Stream,windows-8,microsoft-metro,Windows 8,Microsoft Metro,如何将Windows.Storage.Streams.irandomaccesstream转换为System.IO.Stream 我使用的是一个C库,它接受System.IO.Stream作为输入,但是当我在Metro中打开文件时,我会得到Windows.Storage.Streams.irandomaccesstream你可以将Windows.Storage.Streams.irandomaccesstream转换成字节[]到系统.IO.Stream 来自irandomaccesstream的

如何将
Windows.Storage.Streams.irandomaccesstream
转换为
System.IO.Stream


我使用的是一个C库,它接受
System.IO.Stream
作为输入,但是当我在Metro中打开文件时,我会得到
Windows.Storage.Streams.irandomaccesstream

你可以将
Windows.Storage.Streams.irandomaccesstream
转换成
字节[]
系统.IO.Stream

来自irandomaccesstream的字节[]

        var file = await new FileOpenPicker().PickSingleFileAsync();
        var fStream = await file.OpenAsync(FileAccessMode.Read);

        var reader = new DataReader(fStream.GetInputStreamAt(0));
        var bytes = new byte[fStream.Size];
        await reader.LoadAsync((uint)fStream.Size);
        reader.ReadBytes(bytes);
来自字节[]的流

var stream = new MemoryStream(bytes);

最简单的方法是调用。

WP8没有
AsStream
方法,尽管WinRT有此方法。不要忘记使用System.IO