首页 > 解决方案 > 如何使用 C++ 读取 Hololens 上的文件

问题描述

我正在尝试读取正在部署到 Hololens 的测试/调试 UWP 应用程序中的文件。我可以使用设备门户将文件放在设备上,但无法找到打开文件的正确路径。

我使用 MSFT BasicXrApp_uwp 示例作为基础,并包含了具有FindFileInAppFolder功能的 FileUtility。"The file should be embeded in app folder in debug build."在让我知道应用程序文件夹是之后,这始终无法找到文件,并出现错误 :

C:\Data\Users\DefaultAccount\AppData\Local\DevelopmentFiles\364f83f4-6e13-42e4-8253-71dd3040951cVS.Debug_ARM.mikeh\

该部分364f83f4-6e13-42e4-8253-71dd3040951cVS在设备门户中可识别为 User Folders/LocalAppData 文件夹,但 Debug_ARM.mikeh 部分在门户上不可见。

如果可能的话,我正在使用 C++ 并尝试在静态的非 uwp 库中读取文件(指出这一点,所以如果可能的话,我不会收到使用 UWP 异步内容的建议)。

那么,如何将我的文件嵌入到 app 文件夹中,或者如何放置文件以便我可以阅读它?

标签: c++uwpnativehololens

解决方案


这是因为 FindFileInAppFolder 方法返回的文件夹路径是当前包的InstalledLocation,但是您在设备门户中查看的是LocalFolder / LocalCacheFolder,有关它们之间有什么不同的更多信息,请参阅:文件访问权限

如何将我的文件嵌入到应用程序文件夹中,或者如何放置文件以便我可以阅读它?

您可以通过 Device Portal 将文件放在 LocalState 文件夹中,并通过 ApplicationData.LocalFolder 属性获取此文件夹路径,路径应为:C:\Data\Users\DefaultAccount\AppData\Local\Packages\364f83f4-6e13-42e4-8253-71dd3040951c\LocalState。对于如何通过 C++ 访问文件,您可以使用例如文件访问示例


推荐阅读