[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.

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章