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;
        }
    }

UWP:使用云映像文件路径访问被拒绝

根据您的描述,您可能正在PC/手机上使用OneDrive。

"C:''Data''Users''DefApps''AppData . . .''TempState''ShareCache''IMG_1613.jpg"

这是一个用于存储缓存文件的系统级文件夹,我们不应该/不能通过应用程序中的文件选择器访问它。

对于你的方案,一种解决方案就像你所说的那样,下载图像,或者你可以使用 OneDrive API 开发你的应用,或者更简单的是,如果你允许同步设备上的文件,则可以使用文件选取器访问Microsoft OneDrive 文件夹。