我对这个看似简单的任务的明显复杂性感到震惊。我知道我必须使用StorageFile
类,我找到了这个example,但我只想读一个文件,我知道路径,并将其作为文本读取变成一个字符串。
从我能够收集到的,用StorageFile
读取文件,我必须经历一堆接口; IAsyncOperation<StorageFile>
和IAsyncOperationCompletedHandler
。
必须有更好(更简单)的方式。类似的东西:
using (StorageFile sf = StorageFile.OpenAsync("myFile.txt"))
{
string line = sf.ReadLine();
}
显然这不起作用,但也许我错过了什么,或者有人可以向我解释如何以不同的方式阅读文件?
答案 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);
}