[Unity][EXE][存档]EXE打包文件代码动态新建JSON存档数据以及读取

打包封装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.

猜你喜欢

转载自blog.csdn.net/BuladeMian/article/details/104738855