2017-07-26 123 views
1

我想使用Filestream在Xamarin.IOS中創建一個空的PDF文件。當我嘗試使用下面的代碼來創建文件流:
FileStream fs = new FileStream("InvestmentAgreemen.pdf", FileMode.Create, FileAccess.ReadWrite);使用FileStream創建新文件時拒絕訪問 - Xamarin IOS

我得到以下錯誤:「訪問路徑」 /私人的/ var /瓶/包/應用/ 05AA1616-B66B-483D-8BA1- 80A2B1AEC973/NewEPA.app/InvestmentAgreemen.pdf「被拒絕。」

它在iPad模擬器上運行時工作正常,但只要我將它移動到真實設備上,我就會遇到此權限錯誤。此外,我必須使用文件流來創建空PDF,因爲我也使用Syncfusion的PDF工具用於需要使用Filestream進行保存的xamarin.IOS。 我也嘗試創建一個FileIOPermission對象授予AllAccess AllFiles,但我得到了系統不允許的錯誤。 如何解決此權限錯誤?

回答

4

您正試圖在應用程序捆綁包的根目錄下創建一個文件,該文件夾是隻讀的。我很驚訝,這也沒有在模擬器上失敗。

在運行時創建一個文件,你需要指定一個user writable path

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

謝謝,完美解決!我覺得這對我來說應該是顯而易見的,但是它在模擬器上工作的事實讓我失望了。 – user1328147

+0

大多數沙盒限制*都不*在iOS模擬器上強制執行,包括文件訪問。 – poupou

1

您的應用程序的可寫目錄,而不是包的根目錄中創建您的pdf

​​
+0

這個技巧。我最終將它移動到文檔文件夾,一切正常 – user1328147