c# - 使用文件流创建新文件时访问被拒绝 - Xamarin IOS

标签 c# xamarin xamarin.ios syncfusion

我正在尝试使用 Filestream 在 Xamarin.IOS 中创建一个空的 PDF 文件。当我尝试使用以下代码创建文件流时:
FileStream fs = new FileStream("InvestmentAgreemen.pdf", FileMode.Create, FileAccess.ReadWrite);

我收到以下错误:“访问路径“/private/var/containers/Bundle/Application/05AA1616-B66B-483D-8BA1-80A2B1AEC973/NewEPA.app/InvestmentAgreemen.pdf”被拒绝。”

在 iPad 模拟器上运行时它运行良好,但是当我将它移到真实设备上时,我就遇到了这个权限错误。此外,我必须使用文件流来创建空 PDF,因为我还在使用 Syncfusion 的 xamarin.IOS PDF 工具,这需要使用文件流进行保存。 我还尝试创建一个 FileIOPermission 对象,将 AllAccess 授予 AllFiles,但出现系统不允许的错误。 如何解决此权限错误?

最佳答案

您正在尝试在应用程序包的根目录中创建一个文件,该文件是只读的。我很惊讶这在模拟器上也没有失败。

要在运行时创建文件,您需要指定一个 user writable path

var documents =
 Environment.GetFolderPath (Environment.SpecialFolder.MyDocuments); 
var filename = Path.Combine (documents, "InvestmentAgreemen.pdf");

关于c# - 使用文件流创建新文件时访问被拒绝 - Xamarin IOS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45335229/

相关文章:

c# - 在具有多个 T 类型组件的游戏对象上调用 GetComponent<T> 时,Unity 如何决定返回哪个组件?

c# - 了解如何使用类

push-notification - 用于聊天等实时应用程序的 Signal R 与推送通知

android - 模拟 SetOnTouchListener 或它在 xamarin 中的使用方式,参数必须是什么

javascript - GetElementById 返回未定义的值

c# - 相当于 If contains using SQL?

ios - 更改约束后 UICollectionView 更新单元格大小

xamarin.ios - MVVMCross 更新绑定(bind)到 UITableViewCell

c# - System.Net.WebRequest 在 monotuch 上没有 Accept 属性

c# - Xamarin.iOS 上的 sqlite 中的缓慢 SELECT