Windows 8 如何使用WinRT获取文件?

Windows 8 如何使用WinRT获取文件?,windows-8,windows-runtime,microsoft-metro,Windows 8,Windows Runtime,Microsoft Metro,我想要的是: 从AppData获取要使用的xml 我的代码是什么 我得到了什么 错误:不能隐式地将类型“Windows .Fase.IasycCurror”转换为“Windows .Sturo.SturaFeFLE” 我查什么 此方法成功完成后,将返回一个 表示该文件 我所拥有的 Windows8版本预览64位; Visual Studio Express 2012 RC for Windows 8; C 我根据MSDN文档编写代码,为什么会发生此错误以及如何解决它?如果您在C或localFol

我想要的是: 从AppData获取要使用的xml

我的代码是什么

我得到了什么 错误:不能隐式地将类型“Windows .Fase.IasycCurror”转换为“Windows .Sturo.SturaFeFLE”

我查什么

此方法成功完成后,将返回一个 表示该文件

我所拥有的 Windows8版本预览64位; Visual Studio Express 2012 RC for Windows 8; C


我根据MSDN文档编写代码,为什么会发生此错误以及如何解决它?

如果您在C或localFolder.GetFileAsyncabc.xml中,请尝试使用StorageFile sampleFile=await localFolder.GetFileAsyncabc.xml.donefunction sampleFile{}如果您使用的是JS。

如果您使用的是C,请尝试使用StorageFile sampleFile=Wait localFolder.GetFileAsyncabc.xml;如果您使用的是JS,请尝试使用localFolder.GetFileAsncabc.xml.donefunction sampleFile{}。

拉里为您提供了正确的解决方案。让我解释一下发生了什么事

如果查看的MSDN文档,您将看到它返回一个IAsyncOperation。您的代码假定它返回一个SampleFile。GetFileAsync不提供文件,它提供一个对象,该对象将在检索完成后提供一个文件

C中的wait提供了一个函数,一旦满足完成条件,该函数将由该对象或代表该对象调用。然后,该函数将值返回给您。JavaScript.then或.done中的承诺提供了类似的功能,但您必须自己提供该功能


这样做的原因是为了使应用程序能够响应。文件访问速度慢。如果访问内存需要1秒,那么文件访问大约需要15分钟。允许在程序等待时发生其他事情。

Larry为您提供了正确的解决方案。让我解释一下发生了什么事

如果查看的MSDN文档,您将看到它返回一个IAsyncOperation。您的代码假定它返回一个SampleFile。GetFileAsync不提供文件,它提供一个对象,该对象将在检索完成后提供一个文件

C中的wait提供了一个函数,一旦满足完成条件,该函数将由该对象或代表该对象调用。然后,该函数将值返回给您。JavaScript.then或.done中的承诺提供了类似的功能,但您必须自己提供该功能


这样做的原因是为了使应用程序能够响应。文件访问速度慢。如果访问内存需要1秒,那么文件访问大约需要15分钟。允许在程序等待时发生其他事情。

[C]错误:“wait”运算符只能在异步方法中使用。考虑用“AsiNC”修饰符标记该方法,并将其返回类型改为“任务”。我忘记为代码之外的方法添加前缀Asic——如果您知道路径,可以从不同的服务器加载XML吗?[C]错误:“Acess”运算符只能在异步方法中使用。考虑用“AsiNC”修饰符标记该方法并将其返回类型改为“任务”。我忘记为代码之外的方法添加前缀Asic——如果您知道路径,可以从不同的服务器加载XML吗?非常感谢!您以一种非常容易理解的方式解释异步编程,比MSDN好得多!终于明白为什么我要在那里加上“等待”这个词:非常感谢!您以一种非常容易理解的方式解释异步编程,比MSDN好得多!终于明白了为什么我要在这里加上wait这个词:
   StorageFolder localFolder = Windows.Storage.ApplicationData.Current.LocalFolder;
   StorageFile sampleFile = localFolder.GetFileAsync("abc.xml");