В настоящее время в UWP есть способы доступа к локальным файлам в любом месте диска. Вы можете объявить ограниченную возможность broadFileSystemAccess
(см. документы ), которая позволит вам получить доступ к любому пути на диске с помощью API StorageFile
(обратите внимание, что вы по-прежнему не можете получить доступ к этим путям с помощью классического System.IO
API).
Если вы включите broadFileSystemAccess
, ваш код начнет работать как есть.
Однако, чтобы объявить эту возможность, ваше приложение должно иметь вескую причину , так как это потенциальная угроза безопасности для устройства пользователя. Документы Состояние:
Это ограниченная возможность. Доступ настраивается в Настройки> Конфиденциальность> Файловая система. Поскольку пользователи могут предоставлять или отклонять разрешение в любое время в Настройках, вы должны убедиться, что ваше приложение устойчиво к этим изменениям. Если вы обнаружите, что ваше приложение не имеет доступа, вы можете попросить пользователя изменить настройки, предоставив ссылку на статью о доступе к файловой системе Windows 10 и конфиденциальности. Обратите внимание, что пользователь должен закрыть приложение, переключить настройку и перезапустить приложение. Если они переключают параметр во время работы приложения, платформа приостановит ваше приложение, чтобы вы могли сохранить состояние, а затем принудительно прервет приложение, чтобы применить новый параметр. В обновлении за апрель 2018 года разрешение по умолчанию включено. В обновлении за октябрь 2018 года по умолчанию установлено значение Выкл.
Если вы отправляете в Магазин приложение, которое объявляет эту возможность, вам нужно будет предоставить дополнительные описания того, почему вашему приложению нужна эта возможность и как оно намеревается его использовать. Эта возможность работает для API в пространстве имен Windows.Storage. См. Раздел «Пример» в конце этой статьи, чтобы узнать, как включить эту функцию в вашем приложении.
Однако есть такие места, как ApplicationData.Current.LocalFolder
или ApplicationData.Current.RoamingFolder
, к которым вы можете получить доступ без дополнительных разрешений. Вы также можете объявить такие возможности, как musicLibrary
и т. Д. Для доступа к библиотекам.
Наконец, вы также можете позволить пользователю выбрать файл вручную, используя диалоговое окно с использованием классов, таких как FileOpenPicker
или FileSavePicker
, а затем сохранить предоставленный доступ к этому файлу, используя StorageApplicationPermissions.FutureAccessList
- подробнее об этом здесь .
Для получения подробной информации см. документы .