Xamarin iOS 8 Bundle 资源 - 访问路径被拒绝

4

我有一个Xamarin iOS项目,其中有一个文件被我标记为bundle资源。该文件在项目中的配置如下:

<BundleResource Include="my\folder\file.xyz" />

我一直在使用以下代码来访问文件流:

string ext = Path.GetExtension ("file.xyz");
string filenameNoExt = filename.Substring (0, filename.Length - ext.Length);
string path = Path.Combine ("my/folder", filenameNoExt);
var resourcePathname = NSBundle.MainBundle.PathForResource (path, ext.Substring (1, ext.Length - 1));
var fStream = new FileStream (resourcePathname, FileMode.Open);

它在iOS 8上无法工作。在iOS 8之前没有问题。
我收到以下错误:
Access to the path "/private/var/mobile/Containers/Bundle/Application/0E6DD32F-4E6F-4E54-B47E-A91060097E16/myapp.app/my/folder/file.xyz" is denied.

我需要做哪些更改才能使其在iOS 8中工作?

1个回答

7
在创建流时,还要提供FileAccess.Read。否则,对于只读文件,它将抛出一个UnauthorizedAccessException异常。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接