未授权访问异常 UWP
Unauthorized Access Exception UWP
我制作了一个简单的 UWP 应用来测试一些代码
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
FlipButton.Click += new RoutedEventHandler(FlipButton_Click);
}
private async void FlipButton_Click(object sender, RoutedEventArgs e)
{
var sf = await StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///test_pattern.png"));
var original = await sf.OpenStreamForReadAsync();
using (var stream = new SKManagedStream(original))
using (var bitmap = SKBitmap.Decode(stream))
{
ITransform flip = new Flip(FlipOrientation.Vertical);
SKBitmap result = flip.Perform(bitmap);
StorageFolder storageFolder = await KnownFolders.GetFolderForUserAsync(null /* current user */, KnownFolderId.PicturesLibrary);
StorageFile flipfile = await storageFolder.CreateFileAsync("flip_vertical.png", CreationCollisionOption.ReplaceExisting);
Stream flipstream = await flipfile.OpenStreamForWriteAsync();
using (SKManagedWStream wstream = new SKManagedWStream(flipstream))
{
result.Encode(wstream, SKEncodedImageFormat.Png, 100);
}
}
}
}
它在 StorageFolder
行抛出 UnauthorizedAccessException
。我是 UWP 的新手,我不知道如何让它工作...
PS。我使用的一些代码来自 github...
上的 Microsoft 示例
要访问 PicturesLibrary 文件夹,您需要在清单文件中将其声明为一项功能,如下所示:
<Capabilities><uap:Capability Name="picturesLibrary"/></Capabilities>
有关应用程序功能声明的更多信息,请参阅 Microsoft Docs
在 UWP 应用程序中,我们无法直接访问文件夹。它们为我们可以直接访问的某些文件夹提供了功能。但是如果你想访问整个文件系统,那么你可以添加限制能力的 boardFileSystem。然后您可以通过路径访问任何文件夹和文件。
有关详细信息,请访问此 link
https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations
我制作了一个简单的 UWP 应用来测试一些代码
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
FlipButton.Click += new RoutedEventHandler(FlipButton_Click);
}
private async void FlipButton_Click(object sender, RoutedEventArgs e)
{
var sf = await StorageFile.GetFileFromApplicationUriAsync(new Uri(@"ms-appx:///test_pattern.png"));
var original = await sf.OpenStreamForReadAsync();
using (var stream = new SKManagedStream(original))
using (var bitmap = SKBitmap.Decode(stream))
{
ITransform flip = new Flip(FlipOrientation.Vertical);
SKBitmap result = flip.Perform(bitmap);
StorageFolder storageFolder = await KnownFolders.GetFolderForUserAsync(null /* current user */, KnownFolderId.PicturesLibrary);
StorageFile flipfile = await storageFolder.CreateFileAsync("flip_vertical.png", CreationCollisionOption.ReplaceExisting);
Stream flipstream = await flipfile.OpenStreamForWriteAsync();
using (SKManagedWStream wstream = new SKManagedWStream(flipstream))
{
result.Encode(wstream, SKEncodedImageFormat.Png, 100);
}
}
}
}
它在 StorageFolder
行抛出 UnauthorizedAccessException
。我是 UWP 的新手,我不知道如何让它工作...
PS。我使用的一些代码来自 github...
上的 Microsoft 示例要访问 PicturesLibrary 文件夹,您需要在清单文件中将其声明为一项功能,如下所示:
<Capabilities><uap:Capability Name="picturesLibrary"/></Capabilities>
有关应用程序功能声明的更多信息,请参阅 Microsoft Docs
在 UWP 应用程序中,我们无法直接访问文件夹。它们为我们可以直接访问的某些文件夹提供了功能。但是如果你想访问整个文件系统,那么你可以添加限制能力的 boardFileSystem。然后您可以通过路径访问任何文件夹和文件。
有关详细信息,请访问此 link
https://docs.microsoft.com/en-us/windows/uwp/packaging/app-capability-declarations