在PCL项目中获取文件始终返回null

时间:2016-10-12 13:41:36

标签: xamarin portable-class-library

我正在尝试使用PCLStorgae中的PCL项目添加文件,如下所示:

IFile file = await PCLStorage.FileSystem.Current.GetFileFromPathAsync("ProjectName.Data.AuthRequest.json");

上面总是返回null。 BuildAction设置为Embedded Resource。有可能在PCL中获取文件,但我在这里做错了什么。

更新

以下代码在不使用PCLStorage的情况下正常工作:

var assem = typeof(Class).GetTypeInfo().Assembly;

Stream stream = assem.GetManifestResourceStream(string.Format("ProjectName.CustomFolder.FileName"));

using (var reader = new System.IO.StreamReader(stream))
{
    text = reader.ReadToEnd();
}

不确定为什么它会在PCLStorage中返回null。

1 个答案:

答案 0 :(得分:1)

PCLStorage是对各种本机平台(iOS,Android,Windows等)的文件系统差异的抽象。

也许您发现图书馆的名称具有误导性? " PCL"在" PCLStorage"意味着,它允许您从共享代码(PCL)中访问特定于平台的文件系统。关于访问作为资源嵌入PCL的文件,它

正如您已经弄清楚的那样,GetManifestResourceStream()是获取嵌入资源的正确方法。