web-dev-qa-db-ja.com

ファイルの読み方(Metro / WinRT)

私は、この一見単純なタスクの明らかな複雑さに非常に驚いています。 StorageFileクラスを使用する必要があることを知っていて、これを見つけました example ですが、パスがわかっている1つのファイルを読み取り、読み取りたいだけです。文字列へのテキストとしてのデータです。

収集できたものから、StorageFileを使用してファイルを読み取るには、一連のインターフェイスを経由する必要があります。 IAsyncOperation<StorageFile>およびIAsyncOperationCompletedHandler

より良い(より簡単な)方法が必要です。何かのようなもの:

using (StorageFile sf = StorageFile.OpenAsync("myFile.txt"))
{
    string line = sf.ReadLine();
}

明らかにこれは機能しませんが、何かを見逃したか、誰かが別の方法でファイルを読み取る方法を説明してくれる可能性がありますか?

15
annonymously

このWebページが役立つ場合があります: http://blog.jerrynixon.com/2012/06/windows-8-how-to-read-files-in-winrt.html

関連コード:

public string CurrentFileBuffer
{
    get; private set;
}

public async void ReadTextFile(string Path)
{
    var folder = Package.Current.InstalledLocation;
    var file = await folder.GetFileAsync(Path);
    var read = await FileIO.ReadTextAsync(file);
    CurrentFileBuffer = read;
}
30
Matthew Watson

Windows.Storage.FileIO には、StorageIOインターフェイスとクラスを使用するのではなく、1行のコードでジョブを実行するヘルパー/ユーティリティメソッドが多数あります。

例えば.

ReadLineAsync()
ReadTextAsync()
WriteLineAsync()
WriteTextAsync()
5
Dangling Neuron

これを使用してファイルを取得できます。

StorageFile file3 = await StorageFile.GetFileFromPathAsync(@"C:\myFile.txt");
4
user2999722

このようにFileIOクラスを使用できます。

public async void Read(IStorageFile file)
{
    var lines = await FileIO.ReadLinesAsync(file);

}
0
vidstige