UWP应用怎么获取WindowApps中自身目录下文件的读写权限

Killer Dark 60 信誉分
2024-11-08T10:04:39.9866667+00:00

Unity项目打包成UWP项目之后,在运行时提示了”UnauthorizedAccessException: Access to the path "C:/Program Files/WindowsApps/XXX“的报错,找了一下解决办法要么直接修改读取路径,要么换用Windows.Storage下的类。项目比较复杂,一方面有基础框架的读写,一方面还有热更框架的读写,想在尽量不动现有代码的情况下解决,尝试过在打MSIX包时把所有权限都点上了也还是不行,不确定修改manifest文件能否解决,也不确定哪个字段对应这个权限。

.NET
.NET
基于 .NET 软件框架的 Microsoft 技术。
84 个问题
通用 Windows 平台 (UWP)
通用 Windows 平台 (UWP)
一个 Microsoft 平台,用于生成和发布适用于 Windows 桌面设备的应用。
56 个问题
0 个注释 无注释
{count} 票

接受的答案
  1. Junjie Zhu - MSFT 19,856 信誉分 Microsoft 供应商
    2024-11-11T02:27:18.1433333+00:00

    您好,

    欢迎来到 Microsoft 问答!

    想要UWP获得完全的文件访问权限,需要在Package.appxmanifest文件中声明受限功能broadFileSystemAccess

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

    在声明此功能后需要用户手动开启你应用的文件权限,在设置>隐私&安全>文件系统中找到你的应用,并打开文件权限。或者使用URI ms-settings:privacy-broadfilesystemaccess 引导用户去设置中开启权限。

    await Windows.System.Launcher.LaunchUriAsync(new Uri("ms-settings:privacy-broadfilesystemaccess"));
    

    谢谢。


    如果答案是正确的解决方案,请单击“接受答案”并投赞成票。如果您对此答案还有其他问题,请单击“评论”。 注意:如果您想收到此主题的相关电子邮件通知,请按照我们的文档中的步骤启用电子邮件通知。

    1 个人认为此答案很有帮助。

0 个其他答案

排序依据: 非常有帮助

你的答案

问题作者可以将答案标记为“接受的答案”,这有助于用户了解已解决作者问题的答案。