private Stream CreateStorageStream() { if (!ES2DirectoryUtility.Exists(settings.filenameData.directoryPath)) { ES2DirectoryUtility.CreateDirectory(settings.filenameData.directoryPath); } return(ES2FileUtility.CreateFileStream(settings.filenameData.filePath, settings.fileMode, settings.bufferSize)); }
private Stream CreateReadStream() { if (settings.optimizeMode == ES2Settings.OptimizeMode.Fast) { return(new MemoryStream(ES2FileUtility.ReadAllBytes(settings.filenameData.filePath))); } else { return(ES2FileUtility.CreateFileStream(settings.filenameData.filePath, ES2Settings.ES2FileMode.Open, settings.bufferSize)); } }
private Stream CreateWriteStream() { if (settings.optimizeMode == ES2Settings.OptimizeMode.Fast) { return(new MemoryStream()); } else { if (!ES2DirectoryUtility.Exists(settings.filenameData.directoryPath)) { ES2DirectoryUtility.CreateDirectory(settings.filenameData.directoryPath); } return(ES2FileUtility.CreateFileStream(settings.filenameData.filePath + "tmp", ES2Settings.ES2FileMode.Create, settings.bufferSize)); } }
public override void Store() { using (Stream storageStream = CreateStorageStream()) { if (settings.optimizeMode == ES2Settings.OptimizeMode.Fast) { WriteToStreamFast(storageStream); } else if (settings.optimizeMode == ES2Settings.OptimizeMode.LowMemory) { WriteToStreamLowMemory(storageStream); } } stream.Dispose(); ES2FileUtility.Delete(settings.filenameData.filePath + "tmp"); }
public static void DeleteFile(ES2Settings settings) { if (settings.filenameData.IsFile()) { if (ES2FileUtility.Exists(settings.filenameData.filePath)) { ES2FileUtility.Delete(settings.filenameData.filePath); } } else if (settings.filenameData.IsFolder()) { if (ES2DirectoryUtility.Exists(settings.filenameData.filePath)) { ES2DirectoryUtility.Delete(settings.filenameData.filePath, true); } } }
public static void MoveFile(ES2Settings settings, ES2Settings newSettings) { if (settings.filenameData.IsFile()) { if (ES2FileUtility.Exists(settings.filenameData.filePath)) { if (!ES2DirectoryUtility.Exists(newSettings.filenameData.directoryPath)) { ES2DirectoryUtility.CreateDirectory(newSettings.filenameData.directoryPath); } ES2FileUtility.Move(settings.filenameData.filePath, newSettings.filenameData.filePath); } } else if (settings.filenameData.IsFolder() && ES2DirectoryUtility.Exists(settings.filenameData.filePath)) { if (ES2DirectoryUtility.Exists(settings.filenameData.filePath)) { ES2DirectoryUtility.Move(settings.filenameData.directoryPath, newSettings.filenameData.directoryPath); } } }
public static bool Exists(ES2Settings settings) { // Resources if (settings.saveLocation == ES2Settings.SaveLocation.Resources) { if (settings.filenameData.extension != ".bytes") { Debug.LogError("Easy Save 2 Error: Can only check existence of files from Resources with the extension '.bytes'."); } TextAsset data = Resources.Load(settings.filenameData.resourcesPath) as TextAsset; if (settings.filenameData.HasTag()) { return(CheckForTagInBytes(settings.filenameData.tag, data.bytes)); } else if (data != null) { return(true); } return(false); } else if (settings.saveLocation == ES2Settings.SaveLocation.PlayerPrefs) { if (!settings.filenameData.HasTag()) { return(PlayerPrefs.HasKey(settings.filenameData.playerPrefsPath)); } if (!PlayerPrefs.HasKey(settings.filenameData.playerPrefsPath)) { return(false); } using (ES2Reader reader = ES2Reader.Create(settings)) { bool exists = reader.TagExists(); return(exists); } } else if (settings.filenameData.IsURL()) { return(false); } else if (settings.filenameData.HasTag()) { if (!ES2FileUtility.Exists(settings.filenameData.filePath)) { return(false); } using (ES2Reader reader = ES2Reader.Create(settings)) { bool exists = reader.TagExists(); return(exists); } } else { if (settings.filenameData.IsFolder()) { return(ES2DirectoryUtility.Exists(settings.filenameData.directoryPath)); } return(ES2FileUtility.Exists(settings.filenameData.filePath)); } }
public override bool MayRequireOverwrite() { return(ES2FileUtility.Exists(settings.filenameData.filePath)); }