c# - 如何将文件保存到 Hololens 上的 Documents 文件夹?
问题描述
我想在 Hololens 上保存一些持久的 JSON 文件。他们需要在应用程序的构建中持续存在,因此Application.persistentDataPath
不起作用。我选择 Documents 是因为它最有意义。Hololens 上没有下载文件夹。
这是我到目前为止所尝试的:
我已阅读App Capability Documentation并手动将其添加<uap:Capability Name="documentsLibrary"/>
到Package.appxmanifest
文件中。
我还添加了xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
命名空间。但我收到以下警告:
The element 'Capabilities' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10' has invalid child element 'Capability' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities'. List of possible elements expected: 'DeviceCapability' in namespace 'http://schemas.microsoft.com/appx/manifest/foundation/windows10'. Ad-Hoc Localz D:\Repositories\ad-hoc-localization\_build\Ad-Hoc Localz\Package.appxmanifest 37
以及构建时出现以下错误:
Error APPX0501 Validation error. error C00CE014: App manifest validation error: The app manifest must be valid as per schema: Line 45, Column 6, Reason: Element '{http://schemas.microsoft.com/appx/manifest/uap/windows10}Capability' is unexpected according to content model of parent element '{http://schemas.microsoft.com/appx/manifest/foundation/windows10}Capabilities'. Expecting: {http://schemas.microsoft.com/appx/manifest/foundation/windows10}DeviceCapability. Ad-Hoc Localz D:\Repositories\ad-hoc-localization_build\build\bin\Win32\Master\AppxManifest.xml 1
它还说我需要指定我使用此文档手动将其添加到清单的文件类型。但是我得到了同样的警告,即无效的子元素。我没有看到基于 GUI 的方式在这个论坛的这张图片中添加
那么如何构建一个可以访问 Hololens 上 Documents 文件夹的应用程序呢?
在我Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments)
用来获取文档路径的代码中,但在代码片段中它们显示它应该是KnownFolders.DocumentsLibrary
. UWP 上的命名空间无效吗?Environment
解决方案
- 不要使用
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities" 因为 DocumentLibrary 功能位于 uap 命名空间中。添加如下文档功能
<Capabilities>
<Capability Name="internetClientServer"/>
<Capability Name="internetClient"/>
<uap:Capability Name="documentsLibrary"/>
<DeviceCapability Name="microphone"/>
</Capabilities>
现在你不应该得到警告。
使用以下代码行在 Document 文件夹中创建和获取文件
IReadOnlyList<Windows.Storage.StorageFile> file=awaitKnownFolders.DocumentsLibrary.CreateFileAsync("FileName"); IReadOnlyList<Windows.Storage.StorageFile> file=awaitKnownFolders.DocumentsLibrary.GetFileAsync("filename")
推荐阅读
- javascript - 如何使用闪电图将比例更改为任意数字
- discord.js - 如何制作一个在命令中扮演角色的不和谐机器人
- verilog - 如何修复此错误“未知模块类型”?
- outlook - 指定的登录会话不存在。它可能已经终止了 Outlook 365 错误
- node.js - Showdown 不会在 html 块内解析
- android - 将数据从作为生命周期观察者的类传递给 Activity
- android - 如何在kotlin中将值传递给分页DataSourcec
- python - 在Python中查找单词的频率和按降序排列的频率
- javascript - 按名称选择元素的值
- javascript - 仅当从 xmlhttp 调用接收到数据时,如何运行函数?