【问题标题】:Unity UWP File IO denies access to Desktop and more?Unity UWP File IO 拒绝访问桌面等?
【发布时间】:2017-11-08 04:32:13
【问题描述】:

我创建了一个空白的 Unity 项目,为 UWP 构建它并添加了一行代码:

File.ReadAllText(@"C:\\Users\jtth\Desktop\cntrlRcrds-013.txt");

我回来了,

An unhandled exception of type 'System.UnauthorizedAccessException' occurred in mscorlib.ni.dll

Additional information: Access to the path 'C:\Users\jtth\Desktop\cntrlRcrds-013.txt' is denied.

我有:
检查防火墙
确保路径中的所有文件夹/文件都不是只读
更改了根目录 C:\
的路径 尝试进入 Apps 数据文件夹的路径
以管理员身份运行 Unity 和 VS
重启我的电脑

什么给了?请指教。
注意:我在“本地机器”上运行它,而不是在 HoloLens 上。 HoloLens 本身存在各种访问权限问题。

【问题讨论】:

标签: c# unity3d uwp access-denied


【解决方案1】:

UWP 非常沙盒化,您无法真正通过应用程序访问大多数文件夹或文件...

试试

File.ReadAllText(System.IO.Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "cntrlRcrds-013.txt"));

并将文件放在 Windows.Storage.ApplicationData.Current.LocalFolder.Path 指向的位置。

希望这会有所帮助。

【讨论】:

  • 我的建议有效吗?我的 UWP 应用从列出的位置读取文件没有问题...
  • 是的,我应该明确指出,抱歉。我有一个需要文件路径的插件,并且看到除了在应用程序沙箱中之外这是不可能的......不幸的是,这意味着我必须实施解决方法。就像,统一调用在包含我的文件的服务器上运行的 Web 服务。 Web 服务将文件作为 byte[] 返回,根据合理性,该文件将作为沙箱内的“新”文件写入。然后喂这个路径来得到想要的结果
  • 简而言之,希望是避免因必须以晦涩的方式读取文件而影响性能。
  • 有一些方法可以进行本地环回,它调用可以访问所有正常 C# 位置的本地服务。但是,使用此方法有严格的限制,如果我没记错的话,您将无法将您的应用发布到 Windows 应用商店。
猜你喜欢
  • 2018-05-17
  • 2019-06-28
  • 2021-09-18
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 2023-03-20
相关资源
最近更新 更多