Each text file have also a meta file. Is it must or needed the meta files and if not how can I avoid from being creating them ?
This is how I’m saving to the hard disk :
using System.Collections;
using System.Collections.Generic;
using System.IO;
using UnityEngine;
public static class SaveSystem
{
private static readonly string SAVE_FOLDER = Application.dataPath + "/save_";
public static void Init()
{
if (!Directory.Exists(SAVE_FOLDER))
{
Directory.CreateDirectory(SAVE_FOLDER);
}
}
public static void Save(string saveString)
{
int saveNumber = 1;
if (!File.Exists(SAVE_FOLDER + "/" + saveNumber + ".txt"))
{
File.WriteAllText(SAVE_FOLDER + "/" + saveNumber + ".txt", saveString);
}
while (File.Exists(SAVE_FOLDER + "/" + saveNumber + ".txt"))
{
saveNumber++;
}
File.WriteAllText(SAVE_FOLDER + "/" + saveNumber + ".txt", saveString);
}
public static string LoadSingleRecentFile()
{
DirectoryInfo directoryInfo = new DirectoryInfo(SAVE_FOLDER);
FileInfo[] saveFiles = directoryInfo.GetFiles("*.txt");
FileInfo mostRecentFile = null;
foreach (FileInfo fileInfo in saveFiles)
{
if (mostRecentFile == null)
{
mostRecentFile = fileInfo;
}
else
{
if (fileInfo.LastWriteTime > mostRecentFile.LastWriteTime)
{
mostRecentFile = fileInfo;
}
}
}
if (mostRecentFile != null)
{
string saveString = File.ReadAllText(mostRecentFile.FullName);
return saveString;
}
else
{
return null;
}
}
public static List<string> LoadMultipleFiles()
{
DirectoryInfo directoryInfo = new DirectoryInfo(SAVE_FOLDER);
FileInfo[] saveFiles = directoryInfo.GetFiles("*.txt");
List<string> savedFiles = new List<string>();
foreach (FileInfo fileInfo in saveFiles)
{
string savedFile = File.ReadAllText(fileInfo.FullName);
if(savedFile != null)
{
savedFiles.Add(savedFile);
}
}
return savedFiles;
}
}
In another script I’m using jason :
string saveString = SaveSystem.LoadSingleRecentFile();
if (saveString != null)
{
SaveObject saveObject = JsonUtility.FromJson<SaveObject>(saveString);
But the saving it self is in the first script.