当System.IO命名空间不包含File类时,如何在Windows应用商店应用中读取二进制文件,或者更具体地说,如何创建Stream?
BinaryReader的documentation示例无助于使用File!
答案 0 :(得分:13)
您始终使用StorageFile class:
访问Windows应用商店应用中的文件StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync(filename);
然后,您可以使用WinRT API获取文件的二进制内容:
IBuffer buffer = await FileIO.ReadBufferAsync(file);
byte[] bytes = buffer.ToArray();
如果您想使用BinaryReader,则需要使用流:
StorageFile file = await ApplicationData.Current.LocalFolder.GetFileAsync("a");
Stream stream = (await file.OpenReadAsync()).AsStreamForRead();
BinaryReader reader = new BinaryReader(stream);
在这种情况下,请确保仅使用ReadBytes()作为二进制数据,而不考虑编码。