繁体   English   中英

WinRT-获取文件和目录列表

[英]WinRT - Get list of files and directories

在Windows Store应用程序/ Windows Phone应用程序中,有什么方法可以与C ++或C#同步获取文件/目录列表吗? 所有示例都是异步的。

在大多数情况下,您将需要异步执行此操作。 当应用程序UI挂起时,用户不喜欢它,而await系统尝试使异步编程尽可能地流畅,因此您不必实施大量的自定义代码即可保持应用程序的响应速度。

也就是说,对于不太可能对响应速度产生重大影响的情况,您可以同步:

如果文件位于安装或应用程序数据文件夹中,则应用程序可以使用标准C ++文件API访问它们。 该应用没有其他位置的文件权限,因此需要使用异步StorageItem API(StorageFolders和StorageFiles)

如果应用程序正在从后台线程调用StorageItem,则它可以同步等待async选项完成。 应用程序无法通过这种方式阻止UI线程:Task.Wait将在UI线程中失败。

var thread = myFolder.GetFilesAsync().AsTask();
thread.Wait();

这个问题的解决方案对我有用: 如何同步运行异步Task <T>方法?

    var task = Task.Run(async () => { await ... });
    task.Wait();

本文中的示例也可以正常工作。 http://mtaulty.com/CommunityServer/blogs/mike_taultys_blog/archive/2013/02/22/windows-8-winrt-storagefolder-hidden-files-net-c-appcontainers-brokering.aspx

ps我忘了提,我需要为我的c ++游戏而不是app同步读取文件/目录列表。 我正在从iphone / android移植现有代码,因此有些地方取决于功能的结果。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM