StorageFolder.GetFilesAsync非常慢:
- 对于包含约3500个文件的文件夹,需要大约7秒钟。
在Windows Phone 8.0 Silverlight中,我能够更快地获取CameraRoll的内容(通过MediaLibrary):
- 对于同样数量的文件,只需小于1秒钟。
是否有可能加速GetFilesAsync
,或者有没有其他获取文件夹中文件的替代方法?
我需要立即提取照片文件的信息,例如Geotag或DateTaken。您可以在我的应用GeoPhoto中看到它们在Silverlight中加载得多么快。我现在正在尝试将其移植到UWP。我已经实现了缓存(通过将geotag和DateTaken与图片路径进行映射),因此我仅需要以后的应用程序启动时的图片路径。尚未缓存的相片可以稍后显示(在长时间的GetFilesAsync
调用之后),但是重要的是,在启动应用程序后立即为用户提供他可以与之交互的内容。
Windows.Storage.BulkAccess
命名空间吗?FileInformationFactory.GetFilesAsync
和FileInformationFactory.GetVirtualizedFilesVector
可能更快。 - Raymond ChenFileInformationFactory.GetFilesAsync
方法,想看看它是否比我以前从未使用过的方法更快...在我编写的一个简单示例中,有10500个文件,返回需要45-60秒,与StorageFolder.GetFilesAsync
时间相似。 - WiredPrairieGetVirtualizedFilesVector
吗?我猜想虚拟向量在前期工作上要少一些,因为它可以懒惰地生成内容。 - Raymond Chen