如何阅读文件(Metro / WinRT)

时间:2012-10-03 07:30:58

标签: c# wpf windows-8 microsoft-metro windows-runtime

我对这个看似简单的任务的明显复杂性感到震惊。我知道我必须使用StorageFile类,我找到了这个example,但我只想读一个文件,我知道路径,并将其作为文本读取变成一个字符串。

从我能够收集到的,用StorageFile读取文件,我必须经历一堆接口; IAsyncOperation<StorageFile>IAsyncOperationCompletedHandler

必须有更好(更简单)的方式。类似的东西:

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

显然这不起作用,但也许我错过了什么,或者有人可以向我解释如何以不同的方式阅读文件?

4 个答案:

答案 0 :(得分:30)

此网页可能会有所帮助: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;
}

答案 1 :(得分:5)

Windows.Storage.FileIO有一堆帮助/实用程序方法,可以在一行代码中完成工作,而不是使用StorageIO接口和类。

e.g。

ReadLineAsync()
ReadTextAsync()
WriteLineAsync()
WriteTextAsync()

答案 2 :(得分:4)

您可以使用以下方式获取文件:

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

答案 3 :(得分:0)

您可以像这样使用FileIO类。

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

}