下面的代码不会被编译,因为IsOfType不被接受为item上的方法。 该文件指出:
当这个方法成功完成时,它返回一个代表指定文件或文件夹的IStorageItem。 如果未find指定的文件或文件夹,则此方法返回null,而不是引发exception。
要使用返回的项目,请调用IStorageItem接口的IsOfType方法以确定项目是文件还是文件夹。 然后将该项目投射到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; }
谢谢…罗伯特
你正在await
关键字等待异步方法的结果 – 在这种情况下,你应该写这样的东西:
var item = await folder.TryGetItemAsync(fileName);
由于这个item
是IStorageItem
类型,而在你的代码中,它是IAsyncOperation<IStorageItem>
类型。
按照惯例 ,所有的异步方法都有Async
后缀,你需要等待结果来检查它。
小费:
在大多数IDE中,当您将鼠标悬停在var
关键字上时,将会显示一个变量类型 – 这样可以更容易地找到错误。