[英]Getting a Stream from a resource file / content
這是從資源文件獲取流的正確/唯一方法嗎?
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/zh-cn/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
謝謝
好吧,我找到了!
StorageFile storageFile =
await Windows.Storage.StorageFile.GetFileFromApplicationUriAsync(uri);
var randomAccessStream = await storageFile.OpenReadAsync();
Stream stream = randomAccessStream.AsStreamForRead();
您也可以減少一行:
Stream stream = await storageFile.OpenStreamForReadAsync();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.