在UWP应用中设置自定义StorageFolder时出错

时间:2018-10-29 11:11:37

标签: c# uwp

我正在开发一个小型UWP应用,它将拍摄照片和视频并将其保存在PC上的所需位置。

这是我正在使用的代码基础https://github.com/Microsoft/Windows-universal-samples/blob/master/Samples/CameraStarterKit/cs/MainPage.xaml.cs

当我尝试使用所需路径初始化StorageFolder类时,它显示为null。它仅支持使用以下路径初始化

var picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Documents);
var picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Music);
var picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Pictures);
var picturesLibrary = await StorageLibrary.GetLibraryAsync(KnownLibraryId.Videos);

这是我的代码:

private StorageFolder _captureFolder = null;
 _captureFolder = picturesLibrary.SaveFolder ?? ApplicationData.Current.LocalFolder;
var file = await _captureFolder.CreateFileAsync("SmartPhoto.jpg",
                    CreationCollisionOption.GenerateUniqueName);
var picturesLibrary = await Task.Run(() =>
                    System.IO.File.Move(file.Path, @"C:\Temp\Pictures\" + file.Name));

由于StorageFolder尚未针对C:\Temp\Pictures进行初始化,因此我试图将该文件从KnownLibraryId.Pictures移至C:\Temp\Pictures,并且也失败了,

  

System.UnauthorizedAccessException:'对路径的访问   'C:\ Temp \ Pictures'被拒绝。'

enter image description here

1 个答案:

答案 0 :(得分:2)

这是设计使然,UWP应用程序无法-默认情况下-无法访问硬盘驱动器上的所有位置...

它只允许使用一组特定的文件夹,但是您可以通过使用文件选择器或添加功能来启用更多文件夹。

如此处文档所述:https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions

  

通用Windows应用程序(应用程序)可以访问某些文件系统位置   默认情况下。应用程序还可以通过文件访问其他位置   选择器,或通过声明功能。