使用文件流创建新文件时访问被拒绝 - Xamarin IOS
Access Denied When Creating a new File Using Filestream - Xamarin IOS
我正在尝试使用 Filestream 在 Xamarin.IOS 中创建一个空的 PDF 文件。当我尝试使用以下代码创建文件流时:
FileStream fs = new FileStream("InvestmentAgreemen.pdf", FileMode.Create, FileAccess.ReadWrite);
我收到以下错误:"Access to the path "/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");
在应用程序的可写目录而不是包的根目录中创建 pdf
:
using (var docPath = NSFileManager.DefaultManager.GetUrl(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomain.All, null, true, out var nsError))
using (var fileStream = new FileStream(Path.Combine(docPath.Path, "InvestmentAgreemen.pdf"), FileMode.Create, FileAccess.ReadWrite))
{
// do something with the file stream
}
我创建了一个在 Xamarin.IOS 平台中创建和保存 PDF 文档的示例。可以从以下位置下载:
http://www.syncfusion.com/downloads/support/directtrac/184238/ze/PDFSave1731207096
请试用示例,让我知道问题是否已解决。
此致,
苏里亚·库马尔
我正在尝试使用 Filestream 在 Xamarin.IOS 中创建一个空的 PDF 文件。当我尝试使用以下代码创建文件流时:
FileStream fs = new FileStream("InvestmentAgreemen.pdf", FileMode.Create, FileAccess.ReadWrite);
我收到以下错误:"Access to the path "/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");
在应用程序的可写目录而不是包的根目录中创建 pdf
:
using (var docPath = NSFileManager.DefaultManager.GetUrl(NSSearchPathDirectory.CachesDirectory, NSSearchPathDomain.All, null, true, out var nsError))
using (var fileStream = new FileStream(Path.Combine(docPath.Path, "InvestmentAgreemen.pdf"), FileMode.Create, FileAccess.ReadWrite))
{
// do something with the file stream
}
我创建了一个在 Xamarin.IOS 平台中创建和保存 PDF 文档的示例。可以从以下位置下载: http://www.syncfusion.com/downloads/support/directtrac/184238/ze/PDFSave1731207096
请试用示例,让我知道问题是否已解决。
此致, 苏里亚·库马尔