how to solve access denied when using UWP GetFolderFromPathAsync

霸气de小男生 提交于 2019-12-08 10:38:16

问题


I'm getting access denied when trying to access file system from my UWP app by using GetFolderFromPathAsync.

My UWP app needs to access the Windows 10 file system. I'm using broadFileSystemAccess but am stuck. My code below gets "access denied" when it does GetFolderFromPathAsync.

And when I try to set the manifest file type, I get the errors below.

Any help greatly appreciated.

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...

Validation error. error C00CE020: App manifest validation error: The app manifest must be valid as per schema: Line 43, Column 12, Reason: Required attribute 'Name' is missing.

MY MANIFEST...

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>

回答1:


I paid Microsoft tech support $500 and got the 'secret' answer. Here it is, my fellow coders...

  1. Open project folder
  2. delete .vs folder.
  3. delete bin and obj
  4. Open solution
  5. Clean solution
  6. Right-click solution -> Restore NuGet Packages
  7. Open project manifest code (not GUI)
  8. Change
    IgnorableNamespaces="uap mp"> to
    IgnorableNamespaces="uap mp rescap">

  9. Replace
    http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities with

  10. Build > Config Manager > Active solution platform = x64 (it defaults to ARM)

  11. Rebuild Solution
  12. Build > Deploy
  13. Window button > search for: File System Privacy Settings
  14. Enable your app

You’re good to go.



来源:https://stackoverflow.com/questions/54595824/how-to-solve-access-denied-when-using-uwp-getfolderfrompathasync

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!