Пример #1
0
        // Создание файла сохранений.
        public static void CreateFile(bool isDefault)
        {
            NumOfFiles++;

            string str = "";

            if (isDefault)
            {
                str = "Unnamed 1";
                UnnamedFilesIdx.Add(1);

                CurrentFilePair = new KeyValuePair <string, string>(str, $"data{NumOfFiles}");
            }

            FileNamesAndAliases.Add(str, $"data{NumOfFiles}");

            try
            {
                string path = String.Format("{0}\\Data\\data{1}.dat", AppDomain.CurrentDomain.BaseDirectory, NumOfFiles);
                using (FileStream fs = new FileStream(path, FileMode.Create))
                {
                    using (StreamWriter sw = new StreamWriter(fs))
                    {
                        sw.WriteLine(0);
                    }
                }
            }
            catch (Exception ex)
            {
                MainWindow.Logger(ex);
                throw;
            }
        }
Пример #2
0
        // Загрузка информации о файлах сохранений.
        public static void LoadGlobalData()
        {
            List <string> data = new List <string>();

            try
            {
                string path = String.Format("{0}\\Data\\global.dat", AppDomain.CurrentDomain.BaseDirectory);
                using (FileStream fs = new FileStream(path, FileMode.Open))
                {
                    using (StreamReader sr = new StreamReader(fs))
                    {
                        // Построчное считывание в лист data.
                        string line;
                        while ((line = sr.ReadLine()) != null)
                        {
                            data.Add(line);
                        }
                    }
                }
            }
            catch (Exception ex)
            {
                MainWindow.Logger(ex);
                throw;
            }

            NumOfFiles      = Int32.Parse(data[0]);
            CurrentFilePair = GetKeyValuePair(data[1]);

            int idx = 2;

            while (idx < data.Count && data[idx] != "" && data[idx] != null)
            {
                var pair = GetKeyValuePair(data[idx]);
                FileNamesAndAliases.Add(pair.Key, pair.Value);
                idx++;
            }

            idx++;
            while (idx < data.Count)
            {
                UnnamedFilesIdx.Add(Int32.Parse(data[idx]));
                idx++;
            }
        }
Пример #3
0
        // Получает новое название с наименьшим номером для "unnamed" файла,
        // исходя из уже существующих "unnamed" файлов.
        // ***
        // Метод нужен для следующего. Например есть "unnamed" файлы с цифрами '1', '2' и '3',
        // мы удаляем файл с цифрой '2'. Потом снова добавляется "безымянный" файл.
        // Ему будет присвоена цифра '2'.
        public static string GetUnnamedWithIdx()
        {
            int idx = 0;

            while (idx < UnnamedFilesIdx.Count)
            {
                if ((idx + 1) != UnnamedFilesIdx[idx])
                {
                    break;
                }
                else
                {
                    idx++;
                }
            }

            idx++;
            UnnamedFilesIdx.Add(idx);
            return(String.Format("Unnamed {0}", idx));
        }
Пример #4
0
        // Удаляет файл сохранения, его имя и псевдоним.
        public static void DeleteFile(string name)
        {
            // Если файл "unnnamed", удаляем его индекс из соответствующего списка.
            if (IsUnnamed(name))
            {
                int idx = GetIdxOfUnnamed(name);
                UnnamedFilesIdx.Remove(idx);
            }

            string path = String.Format("{0}\\Data\\{1}.dat", AppDomain.CurrentDomain.BaseDirectory, FileNamesAndAliases[name]);

            try
            {
                File.Delete(path);
            }
            catch (Exception ex)
            {
                MainWindow.Logger(ex);
                throw;
            }

            FileNamesAndAliases.Remove(name);
        }