gpt4 book ai didi

image - OneDrive镜像呈现文件时如何捕获错误.OpenAsync错误

转载 作者:行者123 更新时间:2023-12-03 07:54:21 25 4
gpt4 key购买 nike

在一个项目中,我尝试为用户提供从其个人库中选择图像的选项。没什么特别的。

当用户从本地镜像库中选择所需图像时,这非常完美。但是,当从OneDrive中选择图像时,会发生错误,并且我无法捕获该错误。错误的来源似乎在file.OpenAsync方法中。

似乎可能与所选图像的大小有关,但我无法确定,因为我无法捕获错误。

这是代码段(实际上摘自XAML图像SDK示例)

        Dim picker As New FileOpenPicker With {.ViewMode = PickerViewMode.Thumbnail, .SuggestedStartLocation = PickerLocationId.PicturesLibrary}
'picker.SuggestedStartLocation = PickerLocationId.PicturesLibrary
picker.FileTypeFilter.Add(".png")
picker.FileTypeFilter.Add(".jpeg")
picker.FileTypeFilter.Add(".jpg")
picker.FileTypeFilter.Add(".bmp")

Dim wBitMap as new WritableBitmap(200,200)
Dim file As StorageFile = Await picker.PickSingleFileAsync()

' Ensure a file was selected
If file IsNot Nothing Then
Try ' Set the source of the WriteableBitmap to the image stream
Using fileStream As IRandomAccessStream = Await file.OpenAsync(Windows.Storage.FileAccessMode.Read)

Await wBitmap.SetSourceAsync(fileStream)
wBitmap.Invalidate()
vwImage.Source = wBitmap
End Using
Catch e1 As TaskCanceledException
' The async action to set the WriteableBitmap's source may be canceled if the user clicks the button repeatedly


End Try
End If

如您所见,这里有一个try-catch,但是仍然 pop 一个非陷阱错误,并且逐步执行,我可以检测到它在行中发生
Await file.OpenAsync(Windows.Storage.FileAccessMode.Read)

现在我的问题是:如何捕获此错误?我对,上面的行是错误的根源吗?如果不是这样,那是什么以及如何克服?

最佳答案

经过大量的实验,我想我找到了解决方法。

当选择一个StorgeFile要被用作源用于图像,它是明智的检查StorageFile.Attributes

所选文件将带有“属性”值。对于来自OneDrive的文件,“属性”值为544(将“存档”和“LocallyIncomplete”组合使用时得到的值。因此,必须先下载该文件,然后才能使用该文件。

此处说明:
Link to the MSDN documentation on StorageFile.Attributes

关于image - OneDrive镜像呈现文件时如何捕获错误.OpenAsync错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29180655/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com