Я пытаюсь сохранить некоторые простые пользовательские данные, следуя этому учебнику. Я строю для Android.
На первых компиляциях все работало нормально. Однако - я вернулся сегодня к своему проекту и получил следующую ошибку: (С тех пор я проделал некоторую работу, но я не могу думать, что изменилось, чтобы вызвать проблему).
DirectoryNotFoundException: Could not find a part of the path
"C:\Users\Ben\AppData\LocalLow\Top Notch Development\Simple Swim\Log:71.test".
System.IO.FileStream..ctor (System.String path, FileMode mode, FileAccess access, FileShare share, Int32 bufferSize, Boolean anonymous, FileOptions options) (at /Users/builduser/buildslave/mono/build/mcs/class/corlib/System.IO/FileStream.cs:292)
System.IO.FileStream..ctor (System.String path, FileMode mode)
(wrapper remoting-invoke-with-check) System.IO.FileStream:.ctor (string,System.IO.FileMode)
SaveSessionSystem.SaveSessionData (.InputController inputcontroller) (at Assets/Scripts/Saving Stuff/SaveSessionSystem.cs:25)
InputController.SaveSessionData () (at Assets/Scripts/InputController.cs:152)
UnityEngine.Events.InvokableCall.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent.cs:166)
UnityEngine.Events.UnityEvent.Invoke () (at C:/buildslave/unity/build/Runtime/Export/UnityEvent_0.cs:58)
UnityEngine.UI.Button.Press () (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:36)
UnityEngine.UI.Button.OnPointerClick (UnityEngine.EventSystems.PointerEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/UI/Core/Button.cs:45)
UnityEngine.EventSystems.ExecuteEvents.Execute (IPointerClickHandler handler, UnityEngine.EventSystems.BaseEventData eventData) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:50)
UnityEngine.EventSystems.ExecuteEvents.Execute[IPointerClickHandler] (UnityEngine.GameObject target, UnityEngine.EventSystems.BaseEventData eventData, UnityEngine.EventSystems.EventFunction`1 functor) (at C:/buildslave/unity/build/Extensions/guisystem/UnityEngine.UI/EventSystem/ExecuteEvents.cs:261)
UnityEngine.EventSystems.EventSystem:Update()
Причина его 'Log71' в том, что каждому новому созданному файлу присваивается номер, который увеличивается каждый раз при создании нового файла.
Я пробовал следующие решения:
Это код для сохранения файла:
string sessionNumber = PlayerPrefs.GetInt("sessionNumberKey").ToString();
string customFileName = "/Log:" + sessionNumber + ".test";
// Save the data
BinaryFormatter formatter = new BinaryFormatter();
string path = Application.persistentDataPath + customFileName;
FileStream stream = new FileStream(path, FileMode.Create);
SaveSession saveSessionData = new SaveSession(inputcontroller);
formatter.Serialize(stream, saveSessionData);
stream.Close();
Debug.Log("The file has been saved with the filename: " + path);
Ожидаемый результат - сообщение «Файл был сохранен с именем файла: (имя файла)» и новый файл, который будет создан в постоянном пути данных (на моем компьютере это C:\Users\Ben\AppData\LocalLow\Top Notch Development\Simple Swim
)
Однако в настоящее время я получаю сообщение об ошибке, но новый файл отсутствует.