Исключение неавторизованного доступа системы UWP Доступ к пути запрещен - PullRequest
0 голосов
/ 19 марта 2019

хочу использовать DirectoryInfo источник C:\Users\admin\Desktop\Server:

source.GetDirectories();

Я получил System.UnauthorizedAccessException:

'Доступ к пути' C: \ Users \ admin \ Desktop \ Server 'запрещен.'

У меня есть приложение UWP. Как получить разрешение на чтение и запись папок / файлов из моего приложения UWP?

1 Ответ

1 голос
/ 19 марта 2019

Приложения UWP были спроектированы так, чтобы пользователи были более безопасны в установке - поскольку они запускаются в песочнице и не имеют большинства разрешений, по умолчанию пользователь знает, что приложение не может нанести какой-либо ущерб ее ПК или данным.Это включает в себя доступ к файловой системе - вам разрешен доступ к нескольким конкретным путям на ПК - включая место установки приложения, папку данных приложения.Вы можете запросить дополнительные местоположения, такие как библиотеки и т. Д.

Для произвольных местоположений у вас есть два варианта:

  1. Используйте FolderPicker (см. Документы ).Пользователь выберет нужную папку, и вы получите экземпляр StorageFolder, через который вы сможете свободно получить к нему доступ.Вы даже можете сохранить разрешение для этой папки при перезапуске приложения, используя FutureAccessList (см. Документы ), что даст вам маркер, с помощью которого вы сможете извлечь экземпляр StorageFolder в будущем.

  2. Объявите broadFileSystemAccess возможность .Это даст вам полный доступ к файловой системе через API StorageFolder и StorageFile (но не через классический System.IO API).Однако это разрешение ограничено, поэтому оно будет проверено в процессе сертификации Microsoft Store, и у вашего приложения должна быть веская причина для его фактического подтверждения.

...