UnauthorizedAccessException尝试清除Xamarin iOS中的缓存时

时间:2018-10-05 09:32:07

标签: xamarin.forms xamarin.ios

我尝试在xamarin ios中执行以下代码时得到UnauthorizedAccessException

documentsPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
documentsPath = Directory.GetParent(documentsPath).ToString();
InternalAppDataPath = Path.Combine(documentsPath, "Library");
InternalCacheDataPath = Path.Combine(InternalAppDataPath,"Caches");
  if (Directory.Exists(InternalCacheDataPath))
{
Directory.Delete(InternalCacheDataPath, true);
}

在尝试执行删除功能时,将引发UnauthorizedAccessException。我该如何解决?

谢谢

2 个答案:

答案 0 :(得分:0)

您不能删除该文件夹路径,因为它是iOS系统路径。您将获得未经授权的例外。

答案 1 :(得分:0)

iOS不允许用户访问非公共的访问目录,唯一可以进行更改的目录是为应用程序创建的文档目录,即:

Environment.SpecialFolder.Personal

现在,当您执行此操作时:

documentsPath = Directory.GetParent(documentsPath).ToString();
InternalAppDataPath = Path.Combine(documentsPath, "Library");
InternalCacheDataPath = Path.Combine(InternalAppDataPath,"Caches");

然后尝试对文档目录的父文件夹进行更改,因为您无权访问这些目录,因此会抛出UnauthorizedAccessException

现在,这不是某种许可或您可以从用户那里获得的解决问题的方法,这是Apple的一种限制(据我所知),因此您不能这样做。

祝你好运

如有查询,请随时还原。

如果您找到一些解决方法,请在此处告诉我。