我为iOS开发了一个应用程序(精确到Ipad),我需要在Ipad上保存配置文件以节省用户进度。 Unity的文档说使用Application.persistentDataPath在Ipad上的配置文件上进行更新。所以,我使用它并且它可以在Unity编辑器上运行,但是当我在Xcode上部署应用程序时,我在执行时遇到了这个错误:
无法加载文件:“/ var / mobile / Containers / Data / Application /.../ Documents / Config / config.ini”
我在Windows上工作,所以我的Application.persistentDataPath是:“C:\ Users \ stagiaire \ AppData \ LocalLow \ CompName \ ProjectName”
根据这个结构,我有“Config / config.ini”,所以我希望这个配置在iOS上是相同的。
但是当我检查这些文件夹和/或文件是否存在时:
if (Directory.Exists(UnityEngine.Application.persistentDataPath + "/Config/config.ini"))
XCode说这个文件不存在,但是当我做这个测试时:
if (Directory.Exists(UnityEngine.Application.persistentDataPath + "/"))
XCode说这个文件夹存在??????
所以,我不明白。 Unity创建persistentDataPath的结构,不创建此结构中包含的文件夹和文件。这看起来很奇怪,所以我问这个问题,因为我没有更多的想法来解决这个问题。
抱歉我的英语很差,谢谢你的时间。
答案 0 :(得分:3)
Unity不会创建目录结构,而是允许您从应用程序的沙箱访问 Documents 文件夹。这意味着你必须在第一次访问它们时创建一次目录和文件。
string dir = Application.persistentDataPath + "/Config";
if (!Directory.Exists (dir)) {
Directory.CreateDirectory (dir);
}
string configFile = dir + "/config.ini";
if (!File.Exists (configFile)) {
File.Create (qcarFile);
}
BTW:如果你调用 Directory.Exists()传递文件名,它将返回false,因为该文件不是目录。