我正在开发一个小型UWP
应用,它将拍摄照片和视频并将其保存在PC上的所需位置。
当我尝试使用所需路径初始化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'被拒绝。'
答案 0 :(得分:2)
这是设计使然,UWP应用程序无法-默认情况下-无法访问硬盘驱动器上的所有位置...
它只允许使用一组特定的文件夹,但是您可以通过使用文件选择器或添加功能来启用更多文件夹。
如此处文档所述:https://docs.microsoft.com/en-us/windows/uwp/files/file-access-permissions
通用Windows应用程序(应用程序)可以访问某些文件系统位置 默认情况下。应用程序还可以通过文件访问其他位置 选择器,或通过声明功能。