Exemple #1
0
        static void Main(string[] args)
        {
            FARMode       mode    = FARMode.DIR;
            DirectoryInfo root    = new DirectoryInfo(@"C:\test2");
            Stack <Layer> history = new Stack <Layer>();

            history.Push(
                new Layer
            {
                Content      = root.GetFileSystemInfos().ToList(),
                SelectedItem = 0
            }
                );


            while (true)
            {
                if (mode == FARMode.DIR)
                {
                    history.Peek().Draw();
                }
                ConsoleKeyInfo consoleKeyInfo = Console.ReadKey();
                switch (consoleKeyInfo.Key)
                {
                case ConsoleKey.Delete:
                    history.Peek().DeleteSelectedItem();
                    break;

                case ConsoleKey.UpArrow:
                    history.Peek().SelectedItem--;
                    break;

                case ConsoleKey.DownArrow:
                    history.Peek().SelectedItem++;
                    break;

                case ConsoleKey.Backspace:
                    if (mode == FARMode.DIR)
                    {
                        history.Pop();
                    }
                    else
                    {
                        mode = FARMode.DIR;
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    break;

                case ConsoleKey.Enter:
                    int            x = history.Peek().SelectedItem;
                    FileSystemInfo fileSystemInfo = history.Peek().Content[x];
                    if (fileSystemInfo.GetType() == typeof(DirectoryInfo))
                    {
                        DirectoryInfo directoryInfo = fileSystemInfo as DirectoryInfo;
                        history.Push(
                            new Layer
                        {
                            Content      = directoryInfo.GetFileSystemInfos().ToList(),
                            SelectedItem = 0
                        });
                    }
                    else
                    {
                        mode = FARMode.FILE;
                        Console.BackgroundColor = ConsoleColor.White;
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Black;
                        using (StreamReader sr = new StreamReader(fileSystemInfo.FullName))
                        {
                            Console.WriteLine(sr.ReadToEnd());
                        }
                    }
                    break;
                }
            }
        }
Exemple #2
0
        static void Main(string[] args)
        {
            FARMode       mode    = FARMode.DIR;         // текущее состояние
            DirectoryInfo root    = new DirectoryInfo(@"C:\Users\Айгерим\Desktop\Новая папка");
            Stack <Layer> history = new Stack <Layer>(); // создаю stack

            history.Push(                                // закидываю нужную папку
                new Layer
            {
                Content      = root.GetFileSystemInfos().ToList(),
                SelectedItem = 0
            }
                );

            while (true)
            {
                if (mode == FARMode.DIR)
                {
                    history.Peek().Draw(); // обновляю каждый раз
                }

                ConsoleKeyInfo consoleKeyInfo = Console.ReadKey();  // нажатие клавиш и необходимые действия
                switch (consoleKeyInfo.Key)
                {
                case ConsoleKey.Delete:     // на клавише delete удалить
                    history.Peek().DeleteSelectedItem();
                    history.Peek().SelectedItem++;
                    break;

                case ConsoleKey.UpArrow:     // листать вверх
                    history.Peek().SelectedItem--;
                    break;

                case ConsoleKey.DownArrow:     // листать вниз
                    history.Peek().SelectedItem++;
                    break;

                case ConsoleKey.Backspace:     // вернуться назад
                    if (mode == FARMode.DIR)
                    {
                        history.Pop();
                    }
                    else
                    {
                        mode = FARMode.DIR;
                        Console.ForegroundColor = ConsoleColor.DarkRed;
                    }
                    break;

                case ConsoleKey.Enter:      // открыть папку или файл

                    int            x = history.Peek().SelectedItem;
                    FileSystemInfo fileSystemInfo = history.Peek().Content[x];
                    if (fileSystemInfo.GetType() == typeof(DirectoryInfo))
                    {
                        DirectoryInfo directoryInfo = fileSystemInfo as DirectoryInfo;
                        history.Push(
                            new Layer
                        {
                            Content      = directoryInfo.GetFileSystemInfos().ToList(),
                            SelectedItem = 0
                        });
                    }

                    else
                    {
                        mode = FARMode.FILE;
                        Console.BackgroundColor = ConsoleColor.White;
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Black;
                        using (StreamReader sr = new StreamReader(fileSystemInfo.FullName))
                        {
                            Console.WriteLine(sr.ReadToEnd());
                        }
                    }
                    break;
                }
            }
        }
Exemple #3
0
        static void Main(string[] args)
        {
            FARMode       mode    = FARMode.DIR;
            DirectoryInfo root    = new DirectoryInfo(@"C:\");//basic directory//
            Stack <Layer> history = new Stack <Layer>();

            history.Push(
                new Layer
            {
                Content      = root.GetFileSystemInfos().ToList(), //print the list of files//
                SelectedItem = 0                                   //default selection of the first element//
            }
                );


            while (true)
            {
                if (mode == FARMode.DIR)
                {
                    history.Peek().Draw();
                }
                ConsoleKeyInfo consoleKeyInfo = Console.ReadKey(); //read key input//
                switch (consoleKeyInfo.Key)                        //different types of actions//
                {
                case ConsoleKey.Delete:                            //delete//
                    history.Peek().DeleteSelectedItem();
                    break;

                case ConsoleKey.UpArrow:    //up//
                    history.Peek().SelectedItem--;
                    break;

                case ConsoleKey.DownArrow:    //down//
                    history.Peek().SelectedItem++;
                    break;

                case ConsoleKey.Backspace:    //go back//
                    if (mode == FARMode.DIR)
                    {
                        history.Pop();    //return last content of history without removing it//
                    }
                    else
                    {
                        mode = FARMode.DIR;
                        Console.ForegroundColor = ConsoleColor.White;
                    }
                    break;

                case ConsoleKey.Enter:                                         //open dir//
                    int            x = history.Peek().SelectedItem;
                    FileSystemInfo fileSystemInfo = history.Peek().Content[x]; //get the content of the selected object//
                    if (fileSystemInfo.GetType() == typeof(DirectoryInfo))
                    {
                        DirectoryInfo directoryInfo = fileSystemInfo as DirectoryInfo;
                        history.Push(
                            new Layer                                                   //executes another code Layer with new info about directory//
                        {
                            Content      = directoryInfo.GetFileSystemInfos().ToList(), //content of the new layer is from the directory//
                            SelectedItem = 0
                        });
                    }
                    else
                    {
                        mode = FARMode.FILE;
                        Console.BackgroundColor = ConsoleColor.White;
                        Console.Clear();
                        Console.ForegroundColor = ConsoleColor.Black;
                        using (StreamReader sr = new StreamReader(fileSystemInfo.FullName))
                        {
                            Console.WriteLine(sr.ReadToEnd());
                        }
                    }
                    break;
                }
            }
        }
Exemple #4
0
        static void Main(string[] args)
        {
            Stack <Layer> sl   = new Stack <Layer>();
            DirectoryInfo root = new DirectoryInfo(@"C:  \Users\Asus\Desktop\Defends");
            DirectoryInfo dir  = root;

            sl.Push(new Layer()
            {
                Content      = root.GetFileSystemInfos().ToList(),
                selectedItem = 0
            });
            FARMode mode = FARMode.DIR;

            while (true)
            {
                if (mode == FARMode.DIR)
                {
                    sl.Peek().Draw();
                }
                ConsoleKeyInfo consoleKeyInfo = Console.ReadKey();
                switch (consoleKeyInfo.Key)
                {
                case ConsoleKey.DownArrow:
                    sl.Peek().SelectedItem++;
                    break;

                case ConsoleKey.UpArrow:
                    sl.Peek().SelectedItem--;
                    break;

                case ConsoleKey.Enter:
                    if (sl.Peek().Content.Count != 0)
                    {
                        FileSystemInfo fsi = sl.Peek().Content[sl.Peek().SelectedItem];
                        if (fsi.GetType() == typeof(DirectoryInfo))
                        {
                            DirectoryInfo dir2 = dir = fsi as DirectoryInfo;
                            sl.Push(new Layer
                            {
                                Content      = dir2.GetFileSystemInfos().ToList(),
                                selectedItem = 0
                            });
                        }
                        else
                        {
                            mode = FARMode.FILE;
                            Console.BackgroundColor = ConsoleColor.White;
                            Console.Clear();
                            Console.ForegroundColor = ConsoleColor.Black;
                            FileInfo     dir2 = fsi as FileInfo;
                            StreamReader sr   = new StreamReader(fsi.FullName);
                            Console.WriteLine(sr.ReadToEnd());
                            sr.Close();
                        }
                    }
                    break;

                case ConsoleKey.Backspace:
                    if (mode == FARMode.DIR)
                    {
                        sl.Pop();
                        FileSystemInfo fsi = sl.Peek().Content[sl.Peek().SelectedItem];
                        dir = fsi as DirectoryInfo;
                    }
                    else
                    {
                        Console.ForegroundColor = ConsoleColor.White;
                        mode = FARMode.DIR;
                    }
                    break;

                case ConsoleKey.Delete:
                    if (mode == FARMode.DIR)
                    {
                        sl.Peek().Delete();
                    }
                    break;

                case ConsoleKey.R:
                    if (mode == FARMode.DIR)
                    {
                        sl.Peek().Draw();
                        sl.Peek().Rename();
                        sl.Peek().Content = dir.GetFileSystemInfos().ToList();
                    }
                    break;

                default:
                    break;
                }
            }
        }