【问题标题】:UWP access deniedUWP 访问被拒绝
【发布时间】:2018-05-17 05:33:00
【问题描述】:

基本上,我很难让我的 UWP 应用打开文本文件。我已将应用程序权限设置为能够访问“我的文档”和已知库的其他选项(如“我的图片”)中的文件,但任何尝试打开不在这些位置的文件都会遇到“拒绝访问”错误。通过搜索互联网,我知道这是一个已知问题,并且已被问过几次,但所有线程似乎都得出这样的结论,即如果不让用户通过文件选择器访问这些文件(由于沙盒),您根本无法访问这些文件)。例如,请参见下面的线程:

https://social.msdn.microsoft.com/Forums/en-US/2ab6e209-cad7-4254-a252-b8e752ea7d13/uwp-how-can-i-access-locally-stored-files-not-on-removable-storage?forum=WindowsIoT

我知道再次问同样的问题并希望得到不同的回答听起来是徒劳的,但我知道这不可能是全部答案。我知道这一点是因为我已经从商店下载了其他记事本应用程序(例如现代记事本),它们允许这种行为没有问题。他们是怎么做到的???

这几个月来一直让我发疯,我真的希望有人能提供帮助

【问题讨论】:

  • 答案依旧没有改变
  • 感谢您的回复。那么其他应用是如何做到的呢?
  • 你能告诉我你想访问的位置吗,我在这个问题中的示例链接stackoverflow.com/questions/47453463/… 可能会为你使用完整的。还可以使用一些代码共享要访问的位置和文件类型,以便我可以帮助您
  • 请参考我的回答stackoverflow.com/questions/47344292/…。与 Win32 应用不同,UWP 应用需要用户权限才能直接访问文件夹。
  • Pratyay 的回答是正确的。短版,您可以访问任何文件夹及其内容,但用户必须先使用选择器明确打开它。完成后,令牌可以存储在 FutureAccessList 中。

标签: c# file uwp


【解决方案1】:

5 个月后...

微软现在似乎已经添加了该功能。 只需将“broadFileSystemAccess”功能添加到应用程序清单中,如下所述: https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions

请注意,这在某种程度上仍需要用户输入(用户必须在应用程序首次运行时授予文件系统访问权限),但不需要文件/文件夹选择器 UI。

我还没有真正尝试过,但听起来它应该可以完成这项工作。我希望它对将来引用此帖子的人有所帮助。

【讨论】:

  • 我试过了,还是不行!此外,我进入了“选择哪些应用程序可以访问您的文件系统”并将我的应用程序设置为是,但它仍然无法正常工作。这个设置有什么作用?难怪微软应用商店如此失败。
【解决方案2】:

是的,就像您已经知道的那样,普通的 UWP 应用无法直接访问某些不允许的路径。您需要一个代理来帮助您使用 FilePicker 访问它。我相信您可以找到很多关于此的文章。

那么为什么你会在商店里看到一些看起来不一样的记事本呢?这是因为这些应用程序是使用DesktopBridge 技术的转换应用程序。 Desktopbridge 允许常见的桌面应用程序在 UWP 应用程序容器中工作并拥有更多权限。虽然它有一些你需要注意的路径问题,比如下面提到的博客:blog1blog2

【讨论】:

  • 非常感谢。这就是我一直在寻找的原因。这对我来说似乎很奇怪,也很令人沮丧,但我想没有办法解决它。谢谢你的回答
【解决方案3】:

首先,您需要将 broadFileSystemAccess 放入您的 Package.XML

https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions

<Package
  ...
  xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
  IgnorableNamespaces="uap mp rescap">
...
<Capabilities>
    <rescap:Capability Name="broadFileSystemAccess" />
</Capabilities>

然后,您的应用将在“隐私”>“文件系统”下显示访问设置。该设置默认不启用,必须在开发过程中启用。

【讨论】:

    猜你喜欢
    • 2019-06-28
    • 2021-09-18
    • 2018-09-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多