15

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

私が収集できたものから、でファイルを読み取るにはStorageFile、一連のインターフェースを通過する必要があります。IAsyncOperation<StorageFile>IAsyncOperationCompletedHandler

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

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

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

4

4 に答える 4

30

この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;
}
于 2012-10-03T07:59:46.713 に答える
5

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

例えば

ReadLineAsync()
ReadTextAsync()
WriteLineAsync()
WriteTextAsync()
于 2012-10-03T11:16:04.070 に答える
4

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

StorageFile file3 = await StorageFile.GetFileFromPathAsync(@"C:\myFile.txt");
于 2013-12-02T06:09:13.200 に答える
0

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

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

}
于 2013-08-28T19:31:04.293 に答える