系统未授权访问异常UWP拒绝访问路径

时间:2019-03-19 12:50:59

标签: file uwp access denied

我想使用 DirectoryInfo来源C:\Users\admin\Desktop\Server

source.GetDirectories();

我得到了System.UnauthorizedAccessException

  

“对路径'C:\ Users \ admin \ Desktop \ Server'的访问被拒绝。”

我有UWP申请。如何获得从我的UWP应用程序读取和写入文件夹/文件的权限?

1 个答案:

答案 0 :(得分:1)

UWP应用程序旨在为用户提供更安全的安装-实际上,它们在沙盒中运行并且默认情况下没有大多数权限,因此用户知道该应用程序不会对她的PC或数据造成任何损害。这包括对文件系统的访问-允许您访问PC上的多个特定路径-包括应用程序安装位置,应用程序数据文件夹。您可以请求其他位置,例如图书馆等。

对于任意位置,您有两个选择:

  1. 使用FolderPicker(请参阅Docs)。用户将选择所需的文件夹,您将获得一个StorageFolder实例,您可以通过该实例自由访问它。您甚至可以使用FutureAccessList(请参见Docs)在应用重新启动时存储对该文件夹的权限,这将为您提供一个令牌,您将来可以通过该令牌检索StorageFolder实例。

  2. 声明broadFileSystemAccess capability。这将使您可以通过StorageFolderStorageFile API(而不是经典的System.IO API)对文件系统进行完全访问。但是,此权限是受限制的,因此将在Microsoft Store认证过程中进行验证,并且您的应用必须有充分的理由真正需要此权限。