这是一个我相信Xcode开发人员也可以回答的问题。 我在Xamarin下面有我的代码截图。
为什么我会收到未经授权的访问异常?我应该能够写到文件夹吗?
代码:
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'。
我尝试了两种路径,但我拒绝访问。
答案 0 :(得分:3)
您无法写入应用的捆绑路径,该文件夹只读。我还不确定Personal
文件夹指向Xamarin.iOS的位置。
使用此目录,您可以写信给它:
string path = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);