【发布时间】:2021-06-28 16:56:50
【问题描述】:
我正在开发 Unity 3D 中的 Hololens 2 应用程序。我正在尝试将配置文件写入设备并稍后通过 Web 浏览器中的设备门户访问它。在应用程序本身中,我被告知该文件正在写入 AppData/Local/Packages/[App Name]/LocalState/[File Name].txt。但是,当我去查看 LocalAppData/[App Name] 时,文件夹 LocalState/ 甚至都不存在。我怀疑这与 Unity 生成的 VS 项目的 Package.appxmanifest 文件中的错误有关。
这是我用来写入文件的相关 C# 代码:
void ReadResolution()
{
string path = Path.Combine(Application.persistentDataPath, mResFilename);
mExcept = $"No exceptions thrown by file IO while writing to \n\"{path}\".";
if(System.IO.File.Exists(path) && new FileInfo(path).Length > 0)
{
try
{
StreamReader reader = new StreamReader(path);
if(reader != null)
{
string content = reader.ReadToEnd();
string[] split = content.Split(' ');
mWidth = Int32.Parse(split[0]);
mHeight = Int32.Parse(split[1]);
}
}
catch (Exception e)
{
mExcept = "File Read Exception: " + e.Message;
}
}
else
{
try
{
using (TextWriter writer = File.CreateText(path))
{
string line = mWidth.ToString() + " " + mHeight.ToString();
writer.WriteLine(line);
}
}
catch (Exception e)
{
mExcept = "File Write Exception: " + e.Message;
}
}
Debug.Log(mExcept);
}
我正在使用成员字段 mExcept 来记录过程中抛出的任何消息或异常。它告诉我文件写入成功,但也许我只是在自欺欺人?
以下是项目的 Package.appxmanifest 文件中的相关部分:
<Package xmlns:mp="http://schemas.microsoft.com/appx/2014/phone/manifest"
xmlns:uap="http://schemas.microsoft.com/appx/manifest/uap/windows10"
xmlns:uap2="http://schemas.microsoft.com/appx/manifest/uap/windows10/2"
xmlns:uap3="http://schemas.microsoft.com/appx/manifest/uap/windows10/3"
xmlns:uap4="http://schemas.microsoft.com/appx/manifest/uap/windows10/4"
xmlns:iot="http://schemas.microsoft.com/appx/manifest/iot/windows10"
xmlns:mobile="http://schemas.microsoft.com/appx/manifest/mobile/windows10"
xmlns:rescap="http://schemas.microsoft.com/appx/manifest/foundation/windows10/restrictedcapabilities"
IgnorableNamespaces="uap uap2 uap3 uap4 mp mobile iot rescap"
xmlns="http://schemas.microsoft.com/appx/manifest/foundation/windows10">
.
.
.
<Capabilities>
<rescap:Capability Name="broadFileSystemAccess" />
<uap:Capability Name="documentsLibrary" />
<Capability Name="internetClient" />
<Capability Name="internetClientServer" />
<Capability Name="privateNetworkClientServer" />
<uap2:Capability Name="spatialPerception" />
<uap3:Capability Name="remoteSystem" />
<DeviceCapability Name="microphone" />
<DeviceCapability Name="gazeinput" />
<DeviceCapability Name="wiFiControl" />
<DeviceCapability Name="webcam" />
</Capabilities>
感谢任何帮助。提前致谢。
【问题讨论】:
-
LocalAppData/[App Name]!=AppData/Local/Packages/[App Name]不过! ...你确定你在正确的地方搜索吗? -
所以我的理解是,Windows 会根据您从哪里查看路径(应用程序与门户网站)来调整路径。我正在寻找其他应用程序写入存储的文件出现的地方。因此,对于我正在使用的其他一些应用程序,事情将进入 LocalAppData[App Name]\LocalState\。我的应用不存在 LocalState 文件夹。
标签: c# unity3d uwp io hololens