以下代码无法编译,因为不接受IsOfType作为项目的方法。文档说明:
当此方法成功完成时,它将返回IStorageItem 表示指定的文件或文件夹。如果指定的文件或 找不到文件夹,此方法返回null而不是引发 异常。
要使用返回的项目,请调用该方法的IsOfType方法 IStorageItem接口,用于确定项目是文件还是文件 夹。然后将项目转换为StorageFolder或StorageFile。
private async void RestoreData(string fileName)
{
StorageFolder folder = ApplicationData.Current.LocalFolder;
var item = folder.TryGetItemAsync(fileName);
if (item == null)
{
existingData = false;
}
if (item.IsOfType(StorageItemTypes.File))
{
await ReadDataAsync(item as StorageFile);
existingData = true;
}
existingData = false;
}
答案 0 :(得分:3)
您缺少await
关键字以等待异步方法的结果 - 在这种情况下,您应该写下这样的内容:
var item = await folder.TryGetItemAsync(fileName);
由于item
的类型为IStorageItem
,而您的代码中的IAsyncOperation<IStorageItem>
类型为Async
。
按convention,所有异步方法都有var
后缀,您需要等待结果检查它。
提示强>
在大多数IDE中,当您将鼠标悬停在if (fd = open(dir, O_RDONLY) == -1)
关键字上时,将显示一个变量类型 - 这样可以更容易地找到错误。