4

System.IO 名前空間に File クラスが含まれていない場合、Windows ストア アプリでバイナリ ファイルを読み取る方法、またはより具体的にはストリームを作成する方法を教えてください。

BinaryReaderのドキュメントの例では、役に立たない File! を使用しています。

4

1 に答える 1

15

Windows ストア アプリのファイルには、常にStorageFileクラスを使用してアクセスします。

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()を使用するようにしてください。

于 2012-12-13T05:51:51.650 に答える