CreateDirectory в Environment.SpecialFolder.MyDocuments запрещен - PullRequest
0 голосов
/ 03 апреля 2019

У меня есть файловый поток, который я хочу сохранить в 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 можно было свободно делать? Я не видел никакой документации, которая говорит, что я должен применить разрешения сначала. Где я должен создавать папки?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

Вы можете попытаться создать платформо-специфичные классы для работы с сохранением файлов и использовать DependencyService для вызова ваших методов. Для приложения iOS я использовал эту папку enum: Environment.SpecialFolder.Personal, и это сработало для меня.

0 голосов
/ 03 апреля 2019

Если вы кодируете с помощью Visual Studio, попробуйте запустить программу в администраторе (Visual Studio) после запуска вашего проекта. Может быть, это хорошее решение.

...