我确信Xcode开发人员也可以回答这个问题.
我在下面的Xamarin中有我的代码的屏幕截图.
为什么会出现未经授权的访问异常?我应该可以写到documents文件夹吗?
码:
var webClient = new WebClient();
//var documentsFolder = Environment.GetFolderPath (Environment.SpecialFolder.Personal); // iOS 7 and earlier
var documentsFolder = NSBundle.MainBundle.BundlePath;
var fileNameAndPath = Path.Combine (documentsFolder, "verses.xml");
if(!File.Exists(documentsFolder)){
Directory.CreateDirectory(documentsFolder);
if(!File.Exists(fileNameAndPath)){
//File.SetAttributes(fileNameAndPath, FileAttributes.Normal);
File.Create(fileNameAndPath);
//Throws exception here.
}
}
和错误:
拒绝访问路径“ /var/mobile/Applications/1F95D694-BBA5-4FB3-AE6C-0C2CDD9DEDD8/comexample.app/verses.xml”
拒绝访问路径“ /private/var/mobile/Applications/1F95D694-BBA5-4FB3-AE6C-0C2CDD9DEDD8/Documents/verses.xml”.
我尝试了两条路径,但访问被拒绝.
解决方法:
您无法写入应用程序的分发包路径,该文件夹为只读.我也不确定Xamarin.iOS的“个人”文件夹所指向的位置.
使用此目录,您可以写入该目录:
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);