C#PCL从文件中读取

Wil*_*ode 10 c# file-io portable-class-library windows-8 windows-phone-8

所以我正在编写一个面向.NET 4.5,Windows 8和Windows Phone 8的可移植类库.我正在尝试从作为构建内容的项目一部分的文本文件中读取.我看到StreamReader在PCL中可用但我似乎无法找到如何从给定文件路径的文件中获取流.如果有人能指出我正确的结构,我会很感激.此外,如果您也可以为XML文件指明方向.我现在只阅读文本文件,但稍后我将使用XML.谢谢!

Mat*_*cey 9

可移植类库允许您使用存在于您所定位的所有平台中的命名空间和类.
.Net 4.5(假设您的意思是完整的桌面 - WinForms/WPF),Windows 8和Windows Phone 8都以非常不同的方式进行文件访问,并且可以使用不同的文件.可以从中访问文件的地方也大不相同:嵌入内容; 嵌入资源; 隔离存储; 共享文件夹; 完整的文件系统.这些并非在您提到的所有平台上都可用.

简短的回答.你可能无法做你想做的事.

文件系统访问在不同平台之间变化很大,通常必须针对每个平台进行不同的操作.
您可以做的是定义PCL可以使用的文件访问(打开,读取,保存等)接口,然后根据需要创建传递给PCL的特定于平台的实例.


Stu*_*art 9

马特是对的.

但是,有一些插件可以让您从PCL访问文件.

我的图书馆,MvvmCross提供了一个 - https://github.com/slodge/MvvmCross/tree/vnext/Cirrious/Plugins/File

但是......对于你目前正在做的事情,我认为你最好的选择是@dsplaisted的便携式文件存储库 - 这可以通过Nuget获得 - http://nuget.org/packages/pclstorage - 这是由PCL团队之一编写的来自微软 - 它非常适合将路径转换为PCL中的Streams