C# 无法将IStorageItem强制转换为StorageFile

C# 无法将IStorageItem强制转换为StorageFile,c#,.net,windows,universal,C#,.net,Windows,Universal,以下代码将不会编译,因为不接受IsOfType作为项上的方法。文件规定: 此方法成功完成后,将返回一个IStorageItem 表示指定文件或文件夹的。如果指定的文件或 未找到文件夹,此方法返回null而不是引发 例外 要处理返回的项,请调用 IStorageItem接口,用于确定项目是文件还是文件 文件夹。然后将项目强制转换为StorageFolder或StorageFile 您缺少等待异步方法结果的await关键字-在这种情况下,您应该编写如下内容: var item = await fol

以下代码将不会编译,因为不接受IsOfType作为项上的方法。文件规定:

此方法成功完成后,将返回一个IStorageItem 表示指定文件或文件夹的。如果指定的文件或 未找到文件夹,此方法返回null而不是引发 例外

要处理返回的项,请调用 IStorageItem接口,用于确定项目是文件还是文件 文件夹。然后将项目强制转换为StorageFolder或StorageFile


您缺少等待异步方法结果的
await
关键字-在这种情况下,您应该编写如下内容:

var item = await folder.TryGetItemAsync(fileName);
由于
item
的类型为
IStorageItem
,而在您的代码中,它的类型为
IAsyncOperation

到,所有异步方法都有
async
后缀,您需要等待结果来检查它

提示:


在大多数IDE中,当您将鼠标悬停在
var
关键字上时,将显示一种类型的变量-这使查找错误变得更加容易。

Doh。我确实注意到了这种类型是IAsyncOperation,但我没有意识到这是一条等待缺失的线索。很好,我能帮上忙。异步是C#非常重要的一部分,我建议您阅读有关异步的内容,包括基本内容。
var item = await folder.TryGetItemAsync(fileName);