これは、リソース ファイルからストリームを取得する正しい/唯一の方法ですか?
Uri uri = new Uri(fullPath);
StorageFile storageFile =
await Windows.Storage.StorageFile.
GetFileFromApplicationUriAsync(uri);
IRandomAccessStreamWithContentType randomAccessStream =
await storageFile.OpenReadAsync();
IInputStream resourceStream = (IInputStream)
randomAccessStream.GetInputStreamAt(0);
私の他のすべてのソース (http およびローカル ストレージ) は Stream オブジェクトを返します。どちらか一方を使用する if-else コードを実行するのは苦痛です。
また、そこから MemoryStream を作成しようとしましたが、バイトを取り出す方法さえ見つかりません...助けてください。
uint size = (uint)randomAccessStream.Size;
IBuffer buffer = new Windows.Storage.Streams.Buffer(size);
await randomAccessStream.ReadAsync(buffer, size,
InputStreamOptions.None);
Stream stream = new MemoryStream(buffer); // error takes byte[] not IBuffer
リソースから読み取る場合の IInputStream.ReadAsync(): http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.streams.iinputstream.readasync.aspx
Stream.Read() と Stream.ReadAsync() は次のようになります。
http://msdn.microsoft.com/en-us/library/system.io.stream.read.aspx
と
http://msdn.microsoft.com/en-us/library/hh137813.aspx
ありがとう