我有一个文件流,我想在iOS下的SpecialFolder枚举下的子文件夹中存储。
FileStream构造函数希望子文件夹结构首先存在,当我尝试创建它时,我得到UnauthorizedAccessException。
假设我的目的地是
Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments) + "/folder1/file1.xls";
在我的会议中,它解决了
/var/mobile/Containers/Data/Application/035ECE7D-0E9F-4DF9-927B-B79FB31AEE01/Documents/folder1/file1.xls
然后我确保该位置存在
if (!Directory.Exists(filepath))
{
Directory.CreateDirectory(filepath);
}
哪个,according到微软,应该工作
CreateDirectory抛出了以下内容,而不是创建子文件夹并且文件流很乐意将文件保存到其中:
{System.UnauthorizedAccessException: Access to the path "/var/mobile/Containers/Data/Application/035ECE7D-0E9F-4DF9-927B-B79FB31AEE01" is denied.
我以为MyDocuments可以自由地做什么?我没有看到任何文档说我必须首先应用权限。我应该在哪里创建文件夹?
如果使用Visual Studio进行编码,请在运行项目后尝试在管理员(Visual Studio)中运行该程序。也许这是一个很好的解决方案。
您可以尝试创建特定于平台的类来处理保存文件并使用DependencyService来调用您的方法。对于iOS应用程序,我使用此文件夹枚举:Environment.SpecialFolder.Personal
,这对我有用。