无法访问OneDrive上的文件; HoloLens运行时; C#

问题描述 投票:1回答:1

我开始使用Microsoft HoloLens。我是C#编程的新手。因此,这可能是一个简单甚至愚蠢的问题,但我只是无法解释,也找不到任何有关它的信息。我使用Unity 2018.4.21f1 Visual Studio 2019和已经提到的HoloLens。

期望的行为:

我想编写一个程序来打开FileExplorer,在这里我可以从下拉菜单中选择OneDrive,选择一个.obj文件(以cube.obj为例),然后在运行时对该文件进行处理和渲染。

当前行为:

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

Exception thrown at 0x76C330D2 in APP.exe: Microsoft C++ exception: Il2CppExceptionWrapper at memory location 0x0210C090.
DirectoryNotFoundException: Could not find a part of the path "C:\Data\Users\marcu\AppData\Local\Packages\microsoft.microsoftskydrive_8wekyb3d8bbwe\LocalState\OpenFile\cube.obj".

注意:

  • 如果cube.obj本地存储在HoloLens上,则一切正常。因此它可能与基于云的存储有关,但是我可以打印路径。
  • 也可与Unity Editor一起使用。
  • 路径不超过260个标志。
  • 路径中没有空格。
  • 也许我只是缺少适当的搜索语法来找到答案。
  • 不幸的是,搜索错误代码没有帮助。
  • 我也可以添加一个代码片段,但是从原理上讲,它与https://docs.microsoft.com/en-us/uwp/api/windows.storage.pickers.fileopenpicker?view=winrt-18362中的第一个示例非常相似。唯一的区别是我将file.Path路径存储在字符串中。

[如果有人遇到类似的问题,可以帮助我解决这个问题或给我提示,我将非常感激。最好的问候

c# uwp onedrive hololens fileopenpicker
1个回答
0
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.