打包封装EXE文件后,运行EXE文件后,是可以正常的存储数据,读取数据。
第一次打开EXE文件
再次打开EXE文件
接着相关资料3的代码JSONDemon.cs的DataJSONFile()函数的代码
/// <summary>
/// 判断 保存的JSON 格式的空文本文件 是否存在,如果存在 就 复制粘贴 为新的存档文件。
/// </summary>
private void DataJSONFile(string path)// [Unity][File][JSON]file.copy的使用方法代码动态创建.json文件
{
if (File.Exists(Application.streamingAssetsPath + "/empty.json") == true
&& File.Exists(path) == false)//Application.dataPath + path_json
{
File.Copy(Application.streamingAssetsPath + "/empty.json", path);
//Directory.CreateDirectory(path);
}
}//DataJSONFile()
File.Copy(Application.streamingAssetsPath + "/empty.json", path);
或者
Directory.CreateDirectory(path);
都是可以新建JSON文件,以及其他的文本文件。
而Directory.CreateDirectory(path);可以直接创建.json格式的文件。
在编辑器,代码中进行的使用
string path_saveData = Application.streamingAssetsPath + "/Test_Scene/SaveData_1.json";
//Application.dataPath更换为Application.streamingAssetsPath
DataJSONFile(path_saveData);
存档的存储路径问题:
Application.dataPath更换为Application.streamingAssetsPath
DirectoryNotFoundException: Could not find a part of the path "E:\Unity\UnityProjects\New Unity Project\Assets\StreamingAssets\Resources\SaveData.json".
UnauthorizedAccessException: Access to the path 'E:/Unity/UnityProjects/New Unity Project/Assets/StreamingAssets/Resources/SaveData.json' is denied.
Directory.CreateDirectory(path);
出现问题,没有创建.json的文本文件,而是创建了一个名字为SaveData.json的文件夹
empty.json文本文件必须在E:/Unity/UnityProjects/New Unity Project/Assets/StreamingAssets/Resources/
的文件路径下保存,打开文件路径,鼠标右键,新建一个文本文件,修改名称以及文件后缀为emty.json即可。
注意empty.json文件的存储路径,是否和 代码中的 路径一致。不一致会出现错误。
错误FileNotFoundException: Could not find file
当项目打包成EXE后path_saveData的字符串文本为
F:\UnityProject\MyProject\TestEXE\TEST_JSON\Nightmares_Data\StreamingAssets\Test_Scene
F:
为F盘
\UnityProject\MyProject\TestEXE\TEST_JSON\
为打包成EXE文件的目标存储位置
Nightmares_Data\StreamingAssets\Test_Scene
Nightmares是打包项目的项目名称,在Unity编辑器-Files-Building Settings-Player Settings-Product Name进行设置即可。
StreamingAssets\Test_Scened
对应的是在Unity编辑器Assets文件夹下面创建的文件夹。
封装打包EXE文件没有反应,可能是因为
Files-Build Setting-Secenes In Build没有添加当前的场景。
点击Add Open Secens即可。
打包封装EXE文件后,运行EXE文件后,是可以正常的存储数据,读取数据。
第一次打开EXE文件
再次打开EXE文件
打包封装EXE文件
SaveData.json存储内容如图所示
E:\Unity\UnityProjects\TestEXE\Project001\New Unity Project_Data\StreamingAssets\Resources
{"Items":[{"m_FileID":894,"m_PathID":0},{"m_FileID":890,"m_PathID":0},{"m_FileID":892,"m_PathID":0}]}
而在UNITY编辑器中
SaveData.json存储内容如图所示
E:\Unity\UnityProjects\New Unity Project\Assets\StreamingAssets\Resources
{"Items":[{"instanceID":18650},{"instanceID":18626},{"instanceID":18630}]}
相关资料:
1.
[Unity][File][JSON]file.copy的使用方法代码动态创建.json文件
2.
[Unity][存档][JSONUnity]存档数据应该存放在哪个文件夹内
3.
[Unity][存档][JSONUnity]存储读取方块数据
4.
[Unity][EXE][File]判断.exe程序是否存在并创建新文件夹
5.
6.