我有一个文件流,我想将其存储在 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);
}
根据Microsoft的说法,这应该有效
CreateDirectory
方法不是创建子文件夹并且文件流愉快地将文件保存到其中,而是抛出以下内容:
{System.UnauthorizedAccessException: Access to the path "/var/mobile/Containers/Data/Application/035ECE7D-0E9F-4DF9-927B-B79FB31AEE01" is denied.
我以为MyDocuments
可以自由地做事?我没有看到任何文件说我必须先申请许可。我应该在哪里创建文件夹?
编写代码,请在运行项目后尝试在 admin (Visual Studio( 中运行该程序。也许这是个好办法。
您可以尝试创建特定于平台的类来处理保存文件,并使用 DependencyService 调用您的方法。对于iOS应用程序,我使用了这个文件夹enum:Environment.SpecialFolder.Personal
,这对我有用。