将 StreamReader(String) 转换为与 UWP API 兼容?

Converting a StreamReader(String) to be compatible with UWP API?

我 运行 使用 StreamReader class 遇到了麻烦。在 StreamReader Class 文档页面上,它声明它 在版本信息 header、"Universal Windows Platform - Available since 8".

下支持通用 Windows 平台 (UWP)

进一步检查其构造函数后,StreamReader(Stream) 构造函数确实支持 UWP 应用程序,但 StreamReader(String) 构造函数不支持它们。

我目前正在使用带有要读取的完整文件路径的 StreamReader(String) 构造函数,

using (StreamReader sr = new StreamReader(path))
{
    ...
}

我正在寻求学习如何将我的 StreamReader(String) 代码转换为 StreamReader(Stream)。

在 UWP 中 StreamReader 只接受 Stream 和附加选项。不是字符串。

因此,要从特定路径使用 StreamReader,您需要获取 StorageFile

StorageFile file = await StorageFile.GetFileFromPathAsync(<Your path>);
var randomAccessStream = await file.OpenReadAsync();
Stream stream = randomAccessStream.AsStreamForRead();
StreamReader str = new StreamReader(stream);

终于解决了我自己的问题!文档很准确。

来自

using (StreamReader sr = new StreamReader(path))
{
    ...
}

using (FileStream fs = new FileStream(path, FileMode.Open))
{
   using (StreamReader sr = new StreamReader(fs))
   {
      ...
   }
}

简洁大方。再次感谢所有贡献者!