1

我开始使用 Microsoft HoloLens。

我对 C# 编程完全陌生。所以这可能是一个简单甚至愚蠢的问题,但我无法解释它,也找不到任何关于它的信息。我使用 Unity 2018.4.21f1 Visual Studio 2019 和已经提到的 HoloLens。

期望的行为:

我想编写一个打开 FileExplorer 的应用程序,我可以从下拉菜单中选择 OneDrive,选择一个 .obj 文件(我们以 cube.obj 为例),这个文件在运行时得到处理和渲染。

当前行为:

我可以使用 FileOpenPicker 从 OneDrive 中选择文件,但随后出现以下错误消息:

在 APP.exe 中的 0x76C330D2 处引发异常:Microsoft C++ 异常:Il2CppExceptionWrapper 位于内存位置 0x0210C090。DirectoryNotFoundException:找不到路径“C:\Data\Users\marcu\AppData\Local\Packages\microsoft.microsoftskydrive_8wekyb3d8bbwe\LocalState\OpenFile\cube.obj”的一部分。

笔记:

  • 如果 cube.obj 本地存储在 HoloLens 上,则一切正常。所以它可能与基于云的存储有关,但我可以打印路径。
  • 也适用于 Unity 编辑器。
  • 路径不超过 260 个标志。
  • 路径中没有空格。
  • 也许我只是缺乏适当的搜索语法来找到答案。
  • 不幸的是,搜索错误代码没有帮助。
  • 我也可以添加一个代码片段,但原则上它与此处的第一个示例非常相似。唯一的区别是我将带有 file.Path 的路径存储在一个字符串中。

如果有人有类似的问题并且可以帮助我解决这个问题或者可以给我一个提示,我将非常感激。

4

1 回答 1

0

默认情况下,UWP 应用只能访问某些文件系统位置,例如ApplicationDataPackage.InstalledLocation. 遗憾的是,您无法通过该路径直接访问 OneDrive 中的文件。

但是您可以ApplicationData.Current.LocalFolder通过调用方法将此文件从 OneDrive 复制到StorageFile.CopyAsync()。因为LocalFolder是你的应用可以自由存储数据的文件夹,在你的应用安装时创建,你可以通过字符串路径从LocalFolder访问这个文件。

于 2020-04-20T08:22:08.587 回答