如何解决使用 UWP GetFolderFromPathAsync 时访问被拒绝的问题

2024-05-07

尝试使用 GetFolderFromPathAsync 从 UWP 应用访问文件系统时,我的访问被拒绝。

我的 UWP 应用需要访问 Windows 10 文件系统。 我正在使用 BroadFileSystemAccess 但被卡住了。 我下面的代码在执行 GetFolderFromPathAsync 时会出现“访问被拒绝”的情况。

当我尝试设置清单文件类型时,出现以下错误。

非常感谢任何帮助。

My code

                    StorageFolder test_StorageFolder = await StorageFolder.GetFolderFromPathAsync(@"C:\demo");
                    StorageFile sampleFile =    await test_StorageFolder.CreateFileAsync("test.txt",
                            Windows.Storage.CreationCollisionOption.ReplaceExisting);

MY MANIFEST ERROR... enter image description here

验证错误。错误 C00CE020:应用程序清单验证错误: 应用程序清单必须根据架构有效:第 43 行,第 12 列,原因: 缺少必需的属性“名称”。

MY MANIFEST... enter image description here

I.E...

> <?xml version="1.0" encoding="utf-8"?> <Package
> xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
> xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10"
> xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
> xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
> IgnorableNamespaces="uap mp build"
> xmlns:build="http://schemas.microsoft.com/developer/appx/2015/build"> 
> <!--
>     THIS PACKAGE MANIFEST FILE IS GENERATED BY THE BUILD PROCESS.
> 
>     Changes to this file will be lost when it is regenerated. To correct errors in this file, edit the source .appxmanifest file.
> 
>     For more information on package manifest files, see http://go.microsoft.com/fwlink/?LinkID=241727   -->   <Identity
> Name="Microsoft.SDKSamples.CameraFrames.CS" Publisher="CN=Microsoft
> Corporation, O=Microsoft Corporation, L=Redmond, S=Washington, C=US"
> Version="1.0.0.0" ProcessorArchitecture="x64" />   <mp:PhoneIdentity
> PhoneProductId="2344b9de-5071-42a6-8873-7fdeb38d53dd"
> PhonePublisherId="00000000-0000-0000-0000-000000000000" />  
> <Properties>
>     <DisplayName>Camera Frames C# Sample</DisplayName>
>     <PublisherDisplayName>Microsoft Corporation</PublisherDisplayName>
>     <Logo>Assets\StoreLogo-sdk.png</Logo>   </Properties>   <Dependencies>
>     <TargetDeviceFamily Name="Windows.Universal" MinVersion="10.0.17134.0" MaxVersionTested="10.0.17134.0" />  
> </Dependencies>   <Resources>
>     <Resource Language="EN-US" />   </Resources>   <Applications>
>     <Application Id="App" Executable="CameraFrames.exe" EntryPoint="CameraFrames.App">
>       <uap:VisualElements DisplayName="MOVANO System Hub Camera  interface" Square150x150Logo="Assets\SquareTile-sdk.png"
> Square44x44Logo="Assets\SmallTile-sdk.png" Description="Camera Frames
> C# Sample" BackgroundColor="#00b2f0">
>         <uap:SplashScreen Image="Assets\Splash-sdk.png" />
>         <uap:DefaultTile>
>           <uap:ShowNameOnTiles>
>             <uap:ShowOn Tile="square150x150Logo" />
>           </uap:ShowNameOnTiles>
>         </uap:DefaultTile>
>       </uap:VisualElements>
>       <Extensions>
>         <uap:Extension Category="windows.fileTypeAssociation">
>           <uap:FileTypeAssociation Name="access">
>             <uap:SupportedFileTypes>
>               <uap:FileType>.txt</uap:FileType>
>               <uap:FileType>.bin</uap:FileType>
>             </uap:SupportedFileTypes>
>           </uap:FileTypeAssociation>
>         </uap:Extension>
>         <uap:Extension Category="windows.fileTypeAssociation">
>           <uap:FileTypeAssociation>
>             <uap:SupportedFileTypes>
>               <uap:FileType></uap:FileType>
>             </uap:SupportedFileTypes>
>           </uap:FileTypeAssociation>
>         </uap:Extension>
>       </Extensions>
>     </Application>   </Applications>   <Capabilities>
>     <Capability Name="privateNetworkClientServer" />
>     <Capability Name="internetClientServer" />
>     <DeviceCapability Name="microphone" />
>     <DeviceCapability Name="webcam" />   </Capabilities>   <build:Metadata>
>     <build:Item Name="TargetFrameworkMoniker" Value=".NETCore,Version=v5.0" />
>     <build:Item Name="VisualStudio" Version="15.0" />
>     <build:Item Name="VisualStudioEdition" Value="Microsoft Visual Studio Professional 2017" />
>     <build:Item Name="OperatingSystem" Version="10.0.17134.1 (WinBuild.160101.0800)" />
>     <build:Item Name="Microsoft.Build.AppxPackage.dll" Version="15.0.28307.104" />
>     <build:Item Name="ProjectGUID" Value="{1BF84D6E-9DCE-5653-AC51-BB4FC694A252}" />
>     <build:Item Name="OptimizingToolset" Value="None" />
>     <build:Item Name="TargetRuntime" Value="Managed" />
>     <build:Item Name="Microsoft.Windows.UI.Xaml.Build.Tasks.dll" Version="15.0.28307.102" />
>     <build:Item Name="MakePri.exe" Version="10.0.17134.12 (WinBuild.160101.0800)" />   </build:Metadata> </Package>

我向 Microsoft 技术支持支付了 500 美元并得到了“秘密”答案。在这里,我的编码员朋友们……

  1. 打开项目文件夹
  2. 删除 .vs 文件夹。
  3. 删除bin和obj
  4. 开放解决方案
  5. 清洁溶液
  6. 右键单击解决方案 -> 恢复 NuGet 包
  7. 打开项目清单代码(非 GUI)
  8. Change
    IgnorableNamespaces="uap mp"> to
    IgnorableNamespaces="uap mp rescap">

  9. Replace
    <DeviceCapability xmlns:rescap=http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities with <rescap:Capability Name="broadFileSystemAccess"/>

  10. 构建 > 配置管理器 > 活动解决方案平台 = x64(默认为 ARM)

  11. 重建解决方案
  12. 构建 > 部署
  13. 窗口按钮 > 搜索:文件系统隐私设置
  14. 启用您的应用程序

你可以走了。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何解决使用 UWP GetFolderFromPathAsync 时访问被拒绝的问题 的相关文章

随机推荐