Example #1
0
        /// <summary>
        /// Try load data by file name and type.
        /// </summary>
        /// <param name="_name"> File name. </param>
        /// <param name="_data"> Save data. </param>
        /// <typeparam name="T"> Data type. </typeparam>
        private static bool TryLoadData <T>(string _name, out T _data) where T : SaveData
        {
            try
            {
                string _path = SavePath.GetName() + _name;

                _data = default;

                if (File.Exists(_path) == false)
                {
                    return(false);
                }

                FileStream _stream = new FileStream(_path, FileMode.Open, FileAccess.Read, FileShare.None);

                _data = (T)binaryFormatter.Value.Deserialize(_stream);
                _stream.Close();
            }
            catch (Exception _exception)
            {
                Debugger.Log($"Loading data failed: {_exception.Message}");
                _data = null;

                return(false);
            }

            return(true);
        }
Example #2
0
        /// <summary>
        /// Write data in file.
        /// </summary>
        private static void WriteInFile <T>(T _data) where T : SaveData
        {
            string _filePath = SavePath.GetName() + _data.Name;

            FileStream _stream = new FileStream(_filePath, FileMode.Create, FileAccess.Write, FileShare.None);

            binaryFormatter.Value.Serialize(_stream, _data);
            _stream.Close();
        }
Example #3
0
        /// <summary>
        /// Check if data file was created in default directory.
        /// </summary>
        /// <param name="_name"> File name. </param>
        /// <typeparam name="T"> Data type. </typeparam>
        /// <returns></returns>
        private static bool CheckIsCreated <T>(string _name)
        {
            string _path = SavePath.GetName() + _name;

            if (File.Exists(_path) == false)
            {
                return(false);
            }

            if (IsPathValid <T>(_name) == false)
            {
                return(false);
            }

            return(true);
        }
Example #4
0
        /// <summary>
        /// Remove all data files.
        /// </summary>
        public static void RemoveAll()
        {
            try
            {
                string[] _names = Directory.GetFiles(SavePath.GetName());

                for (int i = 0; i < _names.Length; i++)
                {
                    File.Delete(_names[i]);
                }
            }
            catch (Exception _exception)
            {
                Debugger.Log($"Deleting all files failed: {_exception.Message}");
            }
        }
Example #5
0
        /// <summary>
        /// Check if file corresponds the requested type.
        /// </summary>
        /// <param name="_name"> File name. </param>
        /// <typeparam name="T"> Data type. </typeparam>
        private static bool IsPathValid <T>(string _name)
        {
            string _path = SavePath.GetName() + _name;

            if (File.Exists(_path) == false)
            {
                return(true);
            }

            FileStream _stream = new FileStream(_path, FileMode.Open);

            object _data = binaryFormatter.Value.Deserialize(_stream);

            _stream.Close();

            if (_data is T)
            {
                return(true);
            }

            return(false);
        }
Example #6
0
        /// <summary>
        /// Delete file from default directory.
        /// </summary>
        /// <param name="_name"> File name. </param>
        private static void DeleteFile(string _name)
        {
            string _path = SavePath.GetName() + _name;

            File.Delete(_path);
        }