示例#1
0
        //Реализация метода отображения списка жестких дисков компьютера
        private void DiskList()
        //Создание списка класса "Свойства элементов"
        {
            List <MainProperties> list = new List <MainProperties>();

            try
            {//получения дисков (метод возвращает массив строк, содержащий имена логических дисков)
                foreach (var disk in Environment.GetLogicalDrives())
                {
                    try
                    {     //Создание переменной как новый класс "Свойства элементов"
                        var item = new MainProperties()
                        { //Добавление свойств пути и имени
                            MainPath = disk,
                            Name     = disk
                        };
                        //наполнение списка
                        list.Add(item);
                    }
                    catch { }
                }
            }
            catch { }
            //сортировка по типу (директория/файл), затем по имени
            Items = list.OrderBy(o => o.Name).ToList();
        }
示例#2
0
        //Попытка реализации метода десериализации
        public void Load(out MainProperties mainPropertiesObject)
        {   //Чтение данных из json файла
            string objectJsonFile = File.ReadAllText("save_file.json");

            //Десереализация
            mainPropertiesObject = JsonSerializer.Deserialize <MainProperties>(objectJsonFile);
        }
示例#3
0
        //Попытка реализации метода сериализации
        public void Save()
        {//создание переменной класса "Свойства элементов"
            var mainProperties = new MainProperties();
            //Вызов метода сериализации в строковую
            string objectSerialised = JsonSerializer.Serialize(mainProperties);

            //Запись данных в json файл
            File.WriteAllText("save_file.json", objectSerialised);
        }
示例#4
0
        //Реализация метода вывода на экран строк элементов списка класса "Свойства элементов"
        static void PrintItem(MainProperties item)
        { // отображение имени элемента
            var name = item.Name.Length <= 50 ? item.Name : $"{item.Name.Substring(0, 47)}...";
            //отображение типа элементов (файлы/директории
            var itemType = item.Size.HasValue ? string.Empty : "Dir";
            //отображение размерности файлов
            var size = item.Size.HasValue ? SizeFormat(item.Size.Value) : string.Empty;

            //Вывод на экран консоли
            Console.WriteLine($"{name,-50} {itemType,3 } {size,15}");
        }
示例#5
0
        //Информационное окно метода удаления
        static bool DeleteWindow(MainProperties item)
        {
            Console.ResetColor();
            Console.Clear();
            Console.WriteLine(item.MainPath);
            Console.ForegroundColor = ConsoleColor.Red;
            Console.WriteLine("Удалить выбранный элемент? Для подтверждения нажмите клавишу Y.");
            Console.ResetColor();
            var key = Console.ReadKey();

            return(key.Key == ConsoleKey.Y);
        }
示例#6
0
        //Отображает содержимое выбранной директории
        private void ItemList(string path)
        {//Создание списка класса "Свойства элементов"
            List <MainProperties> list = new List <MainProperties>();

            try
            {//получения содержимого (метод возвращает имена всех файлов и подкаталогов)
                foreach (var entri in Directory.GetFileSystemEntries(path))
                {
                    try
                    {     //Создание переменной как новый класс "Свойства элементов"
                        var item = new MainProperties()
                        { //Добавление свойств пути и имени, а так же размера
                            MainPath = entri,
                            Name     = Path.GetFileName(entri),
                            //Размер при помощи тернарного оператора проверяем существование файла и данные о его размере
                            Size = File.Exists(entri) ? new FileInfo(entri).Length : (long?)null
                        };
                        //наполнение списка
                        list.Add(item);
                    }
                    //Отлавливание исключений
                    catch (Exception)
                    {
                        Console.WriteLine("Операция не удалась!");
                    }
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Операция не удалась!");
            }
            //сортировка по типу (директория/файл), затем по имени
            Items = list.OrderBy(o => o.Size.HasValue).ThenBy(o => o.Name).ToList();
            //Создание  перехода к предыдущей директории
            var PreviousPath = new MainProperties()
            {
                Name = "back"
            };
            var parent = Directory.GetParent(path);

            if (parent != null && !parent.FullName.Equals(path))
            {
                PreviousPath.MainPath = parent.FullName;
            }
            Items.Insert(0, PreviousPath);
        }
示例#7
0
 //Отображение файлового менеджера
 static void InfoList(IEnumerable <MainProperties> items, MainProperties selected = null)
 {
     Console.ResetColor();
     Console.Clear();
     //реализация выделения элементов
     foreach (var item in items)
     {
         if (item.Equals(selected))
         {
             Console.BackgroundColor = ConsoleColor.White;
             Console.ForegroundColor = ConsoleColor.Black;
         }
         else
         {
             Console.BackgroundColor = ConsoleColor.Black;
             Console.ForegroundColor = ConsoleColor.White;
         }
         //Вывод на экран строк элементов списка класса "Свойства элементов"
         PrintItem(item);
     }
 }