如何在Windows应用商店应用中读取二进制文件?

mar*_*mnl 4 c# .net-4.5 windows-store-apps

如何在System Store应用程序中读取二进制文件,或者更具体地说,当System.IO命名空间不包含File类时,如何创建Stream?

BinaryReader 的文档示例无益使用File!

Dam*_*Arh 14

您始终使用StorageFile类访问Windows应用商店应用中的文件:

StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(filename);
Run Code Online (Sandbox Code Playgroud)

然后,您可以使用WinRT API获取文件的二进制内容:

IBuffer buffer = await FileIO.ReadBufferAsync(file);
byte[] bytes = buffer.ToArray();
Run Code Online (Sandbox Code Playgroud)

如果你想使用BinaryReader,你需要一个流:

StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("a");
Stream stream = (await file.OpenReadAsync()).AsStreamForRead();
BinaryReader reader = new BinaryReader(stream);
Run Code Online (Sandbox Code Playgroud)

在这种情况下,请确保仅对二进制数据使用ReadBytes(),而不考虑编码.

  • 谢谢你的回答.如果它有用,这里是IBuffer.ToArray()的using语句:using System.Runtime.InteropServices.WindowsRuntime; (3认同)