C#PCL从文件中读取

时间:2013-03-20 16:04:37

标签: c# file-io windows-8 windows-phone-8 portable-class-library

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

2 个答案:

答案 0 :(得分:9)

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

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

不同平台的文件系统访问权限差别很大,通常每个平台都需要采用不同的方式 您可以做的是定义PCL可以使用的文件访问(打开,读取,保存等)的接口,然后根据需要创建传递给PCL的特定于平台的实例。

答案 1 :(得分:9)

马特是对的。

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

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

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