Environment.SpecialFolder.MyDocuments中的CreateDirectory被拒绝

问题描述 投票:0回答:2

我有一个文件流,我想在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可以自由地做什么?我没有看到任何文档说我必须首先应用权限。我应该在哪里创建文件夹?

ios xamarin.forms create-directory
2个回答
0
投票

如果使用Visual Studio进行编码,请在运行项目后尝试在管理员(Visual Studio)中运行该程序。也许这是一个很好的解决方案。


0
投票

您可以尝试创建特定于平台的类来处理保存文件并使用DependencyService来调用您的方法。对于iOS应用程序,我使用此文件夹枚举:Environment.SpecialFolder.Personal,这对我有用。

© www.soinside.com 2019 - 2024. All rights reserved.