Czy jest to właściwy/jedyny sposób uzyskania Stream z pliku zasobów?Uzyskiwanie strumienia z pliku/treści zasobów
Uri uri = new Uri(fullPath);
StorageFile storageFile =
await Windows.Storage.StorageFile.
GetFileFromApplicationUriAsync(uri);
IRandomAccessStreamWithContentType randomAccessStream =
await storageFile.OpenReadAsync();
IInputStream resourceStream = (IInputStream)
randomAccessStream.GetInputStreamAt(0);
Wszystkie moje inne źródła (HTTP i lokalnej pamięci) zwraca obiekt Stream, i to jest bolesne, aby mieć do kodu if-else, który używa jednego lub drugiego.
Próbowałem też po prostu utworzyć MemoryStream z tego, ale nie mogę nawet znaleźć sposobu na wydobycie bajtów ... Proszę o pomoc.
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() podczas odczytu z zasobów: http://msdn.microsoft.com/en-us/library/windows/apps/windows.storage.streams.iinputstream.readasync.aspx
podczas Stream.Read() i Stream.ReadAsync() wygląda następująco:
http://msdn.microsoft.com/en-us/library/system.io.stream.read.aspx
i
http://msdn.microsoft.com/en-us/library/hh137813.aspx
Dzięki
jest możliwe konwertowanie strumienia do StorageFile? : o – jdnichollsc