UWP:使用云映像文件路径访问被拒绝
本文关键字:路径 访问 拒绝 文件 映像 UWP | 更新日期: 2023-09-27 18:32:13
我正在使用文件选取器来选择要在应用中使用的图像。我保存文件路径,然后在应用程序的其他页面中,显示文件路径中的图像。当图像在设备上时,它可以工作。如果映像位于云上,则文件路径:
"C:''Data''Users''DefApps''AppData . . .''TempState''ShareCache''IMG_1613.jpg"
给我一条错误消息,指出访问被拒绝。
我能想到的一种解决方案是,一旦选择了图像,就可以将图像复制到设备,以便可以访问文件路径。
这是处理这种情况的最佳做法吗?
这是我正在使用的代码:
private async void AddPic_OnClick(object sender, RoutedEventArgs e)
{
FileOpenPicker openPicker = new FileOpenPicker();
openPicker.ViewMode = PickerViewMode.Thumbnail;
openPicker.SuggestedStartLocation = PickerLocationId.PicturesLibrary;
openPicker.FileTypeFilter.Clear();
openPicker.FileTypeFilter.Add(".bmp");
openPicker.FileTypeFilter.Add(".jpg");
openPicker.FileTypeFilter.Add(".jpeg");
openPicker.FileTypeFilter.Add(".png");
// Launch file open picker and caller app is suspended and may be terminated
var file = await openPicker.PickSingleFileAsync();
if (file != null)
{
var loadImage = new BitmapImage();
using (var stream = await file.OpenReadAsync())
{
await loadImage.SetSourceAsync(stream);
}
img.Source = loadImage;
_imageFilePath= file.Path;
}
}
根据您的描述,您可能正在PC/手机上使用OneDrive。
"C:''Data''Users''DefApps''AppData . . .''TempState''ShareCache''IMG_1613.jpg"
这是一个用于存储缓存文件的系统级文件夹,我们不应该/不能通过应用程序中的文件选择器访问它。
对于你的方案,一种解决方案就像你所说的那样,下载图像,或者你可以使用 OneDrive API 开发你的应用,或者更简单的是,如果你允许同步设备上的文件,则可以使用文件选取器访问Microsoft OneDrive 文件夹。