Beispiel #1
0
 public ChildProcess(string command)
 {
     Console.Clear();
     try
     {
         Process process = new Process();
         State.isWatching = false;
         var startInfo = new System.Diagnostics.ProcessStartInfo
         {
             WorkingDirectory      = @State.currentPath,
             WindowStyle           = System.Diagnostics.ProcessWindowStyle.Normal,
             FileName              = "cmd.exe",
             RedirectStandardInput = false,
             UseShellExecute       = false,
             Arguments             = "/C " + command,
         };
         process.StartInfo = startInfo;
         process.Start();
         process.WaitForExit();
     }
     catch (Exception e)
     {
         Tools.DisplayError(e);
     }
     Console.Write("\n\n(Program ");
     Console.BackgroundColor = Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Gray;
     Console.Write(command);
     Console.ResetColor();
     Console.Write(" has exited)");
     Console.ReadKey(true);
     State.isWatching = true;
     Console.Clear();
     ConsoleDisplay.Display();
 }
Beispiel #2
0
        public void SearchMode()
        {
            ConsoleDisplay.ClearLine(Console.WindowTop);
            Console.SetCursorPosition(0, Console.WindowTop);

            Console.ForegroundColor = ConsoleColor.Blue;
            Console.Write(":/");
            Console.ResetColor();

            string pattern = Console.ReadLine();


            for (int i = 0; i < ConsoleDisplay.files.Length; i++)
            {
                if (Path.GetFileName(ConsoleDisplay.files[i]).ToLower().Contains(pattern.ToLower()))
                {
                    State.cursorPosY = i;
                    break;
                }
                else if (i == ConsoleDisplay.files.Length - 1)
                {
                    Tools.DisplayError(new Exception("Search returned no results"));
                }
            }


            Console.Clear();
            ConsoleDisplay.Display();
        }
Beispiel #3
0
 private void WatcherChanged(object sender, FileSystemEventArgs e)
 {
     if (State.isWatching)
     {
         ConsoleDisplay.Display();
     }
 }
Beispiel #4
0
        public void DeleteFile(String file)
        {
            try
            {
                FileAttributes attr = File.GetAttributes(file);

                if ((attr & FileAttributes.Directory) != FileAttributes.Directory)
                {
                    File.Delete(file);
                    Console.WriteLine("Deleted: " + file);
                }
                else if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
                {
                    DeleteFolder(file);
                }

                else
                {
                    ConsoleDisplay.Display();
                }
            }
            catch (Exception e)
            {
                Tools.DisplayError(e);
            }
        }
Beispiel #5
0
        public void NewFolder()
        {
            ConsoleDisplay.ClearLine(Console.WindowTop);
            Console.SetCursorPosition(0, Console.WindowTop);
            Console.Write("NEW folder: ");
            string file = Console.ReadLine();

            if (file.IsEmpty())
            {
                ConsoleDisplay.Display();
            }
            else
            {
                try
                {
                    if (!Directory.Exists(State.currentPath + Path.DirectorySeparatorChar + file))
                    {
                        Directory.CreateDirectory(State.currentPath + Path.DirectorySeparatorChar + file);
                    }
                    else
                    {
                        throw new System.Exception("Directory " + file + " already exists!");
                    }
                }
                catch (Exception e)
                {
                    Tools.DisplayError(e);
                }
            }
        }
Beispiel #6
0
 private void WatcherDeletedFile(object sender, FileSystemEventArgs e)
 {
     if (State.isWatching)
     {
         State.selectedFile = null;
         ConsoleDisplay.Display();
     }
 }
Beispiel #7
0
 private void WatcherCreatedFile(object sender, FileSystemEventArgs e)
 {
     if (State.isWatching)
     {
         ConsoleDisplay.files = ConsoleDisplay.CombineArrays(State.currentPath);
         State.cursorPosY     = Array.IndexOf(ConsoleDisplay.files, e.FullPath);
         State.selectedFile   = e.FullPath;
         ConsoleDisplay.Display();
     }
 }
Beispiel #8
0
 //To be used on a catch block
 public static void DisplayError(Exception e)
 {
     ConsoleDisplay.ClearLine(Console.WindowTop);
     Console.SetCursorPosition(0, Console.WindowTop);
     Console.BackgroundColor = ConsoleColor.Red;
     Console.ForegroundColor = ConsoleColor.White;
     Console.Write("(!) " + e.Message);
     Console.ReadKey(true);
     Console.ResetColor();
     ConsoleDisplay.ClearLine(Console.WindowTop);
     ConsoleDisplay.ClearLine(Console.WindowTop + 1);
 }
Beispiel #9
0
        //Displays a new screen with file information
        public FileInfoScreen(String file)
        {
            State.activeScreen = (int)State.screens.INFO;
            Console.Clear();
            Console.Write(new string( '=', Console.WindowWidth / 2 - 10 ));
            Console.Write("  File Information  ");
            Console.Write(new string( '=', Console.WindowWidth / 2 - 10 ));
            Console.SetCursorPosition(0, 11);
            Console.Write(new string( '=', Console.WindowWidth ));
            Console.SetCursorPosition(0, 4);

            FileAttributes attr = File.GetAttributes(file);

            if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
            {
                Console.SetCursorPosition(0, Console.WindowTop + 4);
                Console.WriteLine("{0,-21}{1,0}", "  Directory Name: ", Path.GetFileName(file));
                Console.WriteLine("{0,-21}{1,0}", "  Full Path: ", file);
                Console.WriteLine("{0,-21}{1,0}", "  Size: ", "Calculating...");

                Thread fsThread = new Thread(() => { Tools.DisplayFolderSize(file); });
                fsThread.Start();

                Console.WriteLine("{0,-21}{1,0}", "  Last Modified: ", Directory.GetLastWriteTime(file));
                Console.WriteLine("{0,-21}{1,0}", "  Created: ", Directory.GetCreationTime(file));
            }
            else
            {
                Console.SetCursorPosition(0, Console.WindowTop + 4);
                Console.WriteLine("{0,-21}{1,0}", "  File Name: ", Path.GetFileName(file));
                Console.WriteLine("{0,-21}{1,0}", "  Full Path: ", file);
                Console.WriteLine("{0,-21}{1,0}", "  Size: ", "Calculating...");
                Console.SetCursorPosition(0, Console.WindowTop + 6);

                string fileSize = Tools.DisplayFileSize(file);
                Console.WriteLine("{0,-21}{1,0}", "  Size: ", fileSize + "       \n");
                Console.WriteLine("{0,-21}{1,0}", "  Last Modified: ", File.GetLastWriteTime(file));
                Console.WriteLine("{0,-21}{1,0}", "  Created: ", File.GetCreationTime(file));
            }

            Console.SetCursorPosition(0, 14);
            Console.WriteLine("  (c)opy full path to clipboard");
            ConsoleKeyInfo key = Console.ReadKey(true);

            if (key.KeyChar == 'c')
            {
                Clipboard.SetData(DataFormats.Text, (Object)file);
            }

            ConsoleDisplay.Display();
        }
        public void Start()
        {
            while (!cancellationSignal)
            {
                if (State.windowHeight != Console.WindowHeight || State.windowWidth != Console.WindowWidth)
                {
                    ConsoleDisplay.Display();
                }
                State.windowWidth  = Console.WindowWidth;
                State.windowHeight = Console.WindowHeight;

                Thread.Sleep(50);
            }
            cancellationSignal = false;
        }
Beispiel #11
0
        public void JumpToLetter()
        {
            try
            {
                ConsoleDisplay.ClearLine(Console.WindowTop);
                Console.SetCursorPosition(0, Console.WindowTop);

                Console.ForegroundColor = ConsoleColor.DarkGray;
                Console.Write(":.");
                Console.ResetColor();

                ConsoleKeyInfo keyInfo = Console.ReadKey(true);
                char           key     = keyInfo.KeyChar;

                if (key != State.currentFindKey)
                {
                    State.findKeyMatches.Clear();
                }

                bool hasKey;
                //iterate through directory and find files that start with key
                for (int i = 0; i < ConsoleDisplay.files.Length; i++)
                {
                    hasKey = Path.GetFileName(ConsoleDisplay.files[i]).StartsWith(key.ToString(), StringComparison.InvariantCultureIgnoreCase);

                    if (hasKey)
                    {
                        State.findKeyMatches.Add(i);
                    }
                }

                State.cursorPosY = State.findKeyMatches[State.currentFindKeyPosition];
                if (State.currentFindKeyPosition + 1 < State.findKeyMatches.Count)
                {
                    State.currentFindKeyPosition++;
                }
                else
                {
                    State.currentFindKeyPosition = 0;
                }
                Console.Clear();
                ConsoleDisplay.Display();
            }
            catch (Exception)
            {
                Tools.DisplayError(new Exception("Search returned no results"));
            }
        }
Beispiel #12
0
        private void DeleteFolderWithPrompt(String folder)
        {
            IEnumerable <String> children = Directory.EnumerateFileSystemEntries(folder);

            if (Tools.IsEmpty(children))
            {
                Directory.Delete(folder);
                if (State.cursorPosY > 0)
                {
                    State.cursorPosY = State.cursorPosY - 1;
                }
                if (State.cursorPosY == 0)
                {
                    State.selectedFile = State.currentPath;
                }
            }
            else
            {
                ConsoleDisplay.ClearLine(Console.WindowTop);
                Console.SetCursorPosition(0, Console.WindowTop);
                Console.Write("Folder ");
                Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Gray;
                Console.Write(Path.GetFileName(folder));
                Console.ResetColor();
                Console.Write(" is not empty! Delete folder and its contents? (y?) ");
                ConsoleKeyInfo cki = Console.ReadKey(true);

                if (cki.KeyChar == 'y')
                {
                    Console.Clear();
                    foreach (String child in children)
                    {
                        DeleteFile(child);
                    }
                    Directory.Delete(folder);
                    Console.WriteLine("Deleted: " + folder);
                    State.cursorPosY = 0;
                }
                else
                {
                    ConsoleDisplay.Display();
                }
            }
        }
Beispiel #13
0
        public void DeleteFileWithPrompt(String file)
        {
            ConsoleDisplay.ClearLine(Console.WindowTop);
            Console.SetCursorPosition(0, Console.WindowTop);
            Console.Write("DELETE ");
            Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Gray;
            Console.Write(Path.GetFileName(file));
            Console.ResetColor();
            Console.Write(" (y?)");
            ConsoleKeyInfo cki = Console.ReadKey(true);

            try
            {
                FileAttributes attr = File.GetAttributes(file);

                if (cki.KeyChar == 'y')
                {
                    if ((attr & FileAttributes.Directory) != FileAttributes.Directory)
                    {
                        Console.Clear();
                        State.selectedFile = null;
                        File.Delete(file);
                        Console.WriteLine("Deleted: " + file);

                        if (State.cursorPosY > 0)
                        {
                            State.cursorPosY = State.cursorPosY - 1;
                        }
                    }
                    else if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
                    {
                        DeleteFolderWithPrompt(file);
                    }
                }
                else
                {
                    ConsoleDisplay.Display();
                }
            }
            catch (Exception e)
            {
                Tools.DisplayError(e);
            }
        }
Beispiel #14
0
 public static void DebugWindow()
 {
     Console.Clear();
     Console.WriteLine("****DEBUG****\n\n");
     Console.WriteLine("State.activeScreen: " + State.activeScreen + "\n");
     Console.WriteLine("ConsoleDisplay.currentChunkFiles: ");
     for (int i = 0; i < ConsoleDisplay.currentChunkFiles.Length; i++)
     {
         Console.WriteLine(ConsoleDisplay.currentChunkFiles[i]);
     }
     Console.WriteLine("\nselectedFile: " + State.selectedFile);
     Console.WriteLine("\nState.CursorPosY: " + State.cursorPosY);
     Console.WriteLine("\nState.currentPath: " + State.currentPath);
     Console.WriteLine("\nState.currentFileChunk: " + State.currentFileChunk);
     Console.WriteLine("\nState.findKeyMatches");
     State.findKeyMatches.ForEach((x) => Console.WriteLine(x));
     Console.WriteLine("\nBuffers H - W");
     Console.WriteLine(Console.BufferHeight + " - " + Console.BufferWidth);
     Console.ReadKey(true);
     ConsoleDisplay.Display();
 }
Beispiel #15
0
        public static void CopySelection(string item, bool moveDown)
        {
            if (!selectionRegister.Contains(item))
            {
                selectionRegister.Add(item);
                ConsoleDisplay.RedrawSelectedFile();
                //move down if possible
                if (State.cursorPosY < ConsoleDisplay.files.Length - 1 && moveDown)
                {
                    State.cursorPosY++;
                    ConsoleDisplay.MoveDown();
                }

                Console.SetCursorPosition(0, Console.WindowTop);
                Console.Write("Added ");
                Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Gray;
                Console.Write(Path.GetFileName(item));
                Console.ResetColor();
                Console.Write(" to Selection.");
            }
        }
        public SelectionRegisterScreen()
        {
            Console.Clear();
            Console.WriteLine("\n  Current Selection:\n");
            Console.WriteLine("  (c)lear list\n");
            foreach (String item in Tools.selectionRegister)
            {
                Console.WriteLine(" " + item);
            }

            ConsoleKeyInfo cki = Console.ReadKey(true);

            if (cki.Key == ConsoleKey.C)
            {
                Tools.selectionRegister.Clear();
                Console.Clear();
                Console.WriteLine("\n  Current Selection:\n");
                Console.WriteLine("  (c)lear list\n");
                Console.ReadKey(true);
            }
            ConsoleDisplay.Display();
        }
Beispiel #17
0
        public void NewFile()
        {
            ConsoleDisplay.ClearLine(Console.WindowTop);
            Console.SetCursorPosition(0, Console.WindowTop);
            Console.Write("NEW file: ");
            string file = Console.ReadLine();

            file = State.currentPath + Path.DirectorySeparatorChar + file;

            try
            {
                if (file != String.Empty && !File.Exists(file))
                {
                    FileStream fs = File.Create(file);
                    fs.Close();
                }
                else if (File.Exists(State.currentPath + Path.DirectorySeparatorChar + file))
                {
                    ConsoleDisplay.ClearLine(Console.WindowTop);
                    Console.SetCursorPosition(0, Console.WindowTop);
                    Console.BackgroundColor = ConsoleColor.Red;
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write("(!) File " + file + " already exists!");
                    Console.ResetColor();
                    Console.ReadKey(true);
                    ConsoleDisplay.ClearLine(Console.WindowTop);
                    ConsoleDisplay.ClearLine(Console.WindowTop + 1);
                }
                else
                {
                    ConsoleDisplay.Display();
                }
            }
            catch (Exception e)
            {
                Tools.DisplayError(e);
            }
        }
Beispiel #18
0
        //renames 'file' in the argument list to 'line'
        public void RenameFile()
        {
            string file    = State.selectedFile;
            string oldFile = file;

            ConsoleDisplay.ClearLine(Console.WindowTop);
            Console.SetCursorPosition(0, Console.WindowTop);
            Console.Write("RENAME to: ");
            string line = Console.ReadLine();

            try
            {
                //Check if the file is a directory or not for File.Move() or Directory.Move()
                FileAttributes attr = File.GetAttributes(file);
                if ((attr & FileAttributes.Directory) != FileAttributes.Directory && line != String.Empty)
                {
                    File.Move(file, State.currentPath + Path.DirectorySeparatorChar + line);
                }
                else if ((attr & FileAttributes.Directory) == FileAttributes.Directory && line != String.Empty)
                {
                    Directory.Move(file, State.currentPath + Path.DirectorySeparatorChar + line);
                }
                else
                {
                    ConsoleDisplay.Display();
                }
            }
            catch (Exception e)
            {
                Tools.DisplayError(e);
            }

            while (!oldFile.Equals(file))
            {
                Thread.Sleep(50);
            }
        }
Beispiel #19
0
        static void Main(string[] args)
        {
            Console.Title = "FileScout";
            File.WriteAllText(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) +
                              Path.DirectorySeparatorChar + "fileScoutDir", "");

            //Watches window properties
            WindowProperties wp = new WindowProperties();
            Thread           windowPropertiesThread = new Thread(new ThreadStart(wp.Start));

            if (args.Length > 0)
            {
                Console.WriteLine("Args: " + args[0]);
                if (Directory.Exists(args[0]))
                {
                    State.currentPath = Path.GetFullPath(args[0]);
                }
                else
                {
                    Console.WriteLine("Path does not exists.");
                    return;
                }
            }
            else
            {
                State.currentPath = Directory.GetCurrentDirectory();
            }

            //Watches for changes in filesystem and calls Display() when changes occur.
            new WatchFileSystem().CheckFiles();

            //Handles console display, directory sorting, path shortening, etc.
            ConsoleDisplay.Display();
            StartInputThread();
            windowPropertiesThread.Start();
        }
Beispiel #20
0
        public void StartReading()
        {
            ConsoleKeyInfo consoleKeyInfo;

            do
            {
                //maybe this is a fix? It works so far leave it for a bit
                //string[] directoryArray = CombineArrays( ConsoleDisplay.currentPath );
                string[] directoryArray = ConsoleDisplay.currentChunkFiles;

                if (!directoryArray.IsEmpty())
                {
                    State.selectedFile = directoryArray[State.cursorPosY];
                }

                //Read key to change cursor

                consoleKeyInfo = Console.ReadKey(true);
                switch (consoleKeyInfo.Key)
                {
                case ConsoleKey.UpArrow:
                    ConsoleDisplay.MoveUp();
                    ConsoleDisplay.Display();
                    break;

                case ConsoleKey.DownArrow:
                    ConsoleDisplay.MoveDown();
                    ConsoleDisplay.Display();
                    break;

                case ConsoleKey.RightArrow:
                {
                    //If it it's a folder allow press right key
                    FileAttributes attr = File.GetAttributes(State.selectedFile);

                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
                    {
                        State.currentPath = State.selectedFile;
                        History.SetPointer();
                        ConsoleDisplay.Display();
                    }
                    else
                    {
                        AttemptOpenFile();
                    }
                }
                break;

                case ConsoleKey.LeftArrow:
                {
                    History.AddEntry();

                    //Set cursor to Parent folder
                    if (Directory.GetParent(State.currentPath) != null)
                    {
                        SetCursorToPreviousPosition();
                        State.currentPath = Directory.GetParent(State.currentPath).ToString();
                    }
                    ConsoleDisplay.Display();
                }
                break;
                }
                switch (consoleKeyInfo.KeyChar)
                {
                case 'k':
                    ConsoleDisplay.MoveUp();
                    break;

                case 'j':
                    ConsoleDisplay.MoveDown();
                    break;

                case 'l':
                {
                    //If it it's a folder allow press right key
                    FileAttributes attr = File.GetAttributes(State.selectedFile);

                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
                    {
                        State.currentPath = State.selectedFile;
                        History.SetPointer();
                        ConsoleDisplay.Display();
                    }
                    else
                    {
                        AttemptOpenFile();
                    }
                }
                break;

                case 'h':
                {
                    History.AddEntry();
                    //Set cursor to Parent folder
                    if (Directory.GetParent(State.currentPath) != null)
                    {
                        SetCursorToPreviousPosition();
                        State.currentPath = Directory.GetParent(State.currentPath).ToString();
                    }
                    ConsoleDisplay.Display();
                }
                break;

                case '\t':
                {
                    Console.Clear();
                    Process          process   = new Process();
                    ProcessStartInfo startInfo = new ProcessStartInfo();
                    process.StartInfo          = startInfo;
                    startInfo.FileName         = "cmd";
                    startInfo.UseShellExecute  = true;
                    startInfo.WorkingDirectory = State.currentPath;
                    process.Start();
                    process.WaitForExit();
                    ConsoleDisplay.Display();
                }
                break;

                case ':':
                {
                    new InputBox().CommadMode();
                }
                break;

                case '/':
                {
                    new InputBox().SearchMode();
                }
                break;

                case '.':
                {
                    new InputBox().JumpToLetter();
                }
                break;

                case '\r':
                {
                    AttemptOpenFile();
                }
                break;

                case 'r':
                {
                    new InputBox().RenameFile();
                }
                break;

                case 's':
                {
                    new SelectionRegisterScreen();
                }
                break;

                case 'n':
                {
                    new InputBox().NewFile();
                }
                break;

                case 'N':
                {
                    new InputBox().NewFolder();
                }
                break;

                case 'd':
                {
                    if (State.selectedFile != State.currentPath)
                    {
                        State.isWatching = false;
                        Console.Clear();
                        new InputBox().DeleteFileWithPrompt(State.selectedFile);
                        Console.ReadKey(true);
                        State.isWatching = true;
                        ConsoleDisplay.Display();
                    }
                }
                break;

                case ' ':
                {
                    //Tools.SelectMultiple();
                    //or
                    //ConsoleDisplay.SelectMultpiple():
                }
                break;

                case 'q':
                {
                    Console.Clear();
                    File.WriteAllText(Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) + Path.DirectorySeparatorChar +
                                      "fileScoutDir", State.currentPath);
                    Environment.Exit(0);
                }
                break;

                case 'b':
                {
                    if (ConsoleDisplay.files.Length != 0)
                    {
                        State.cursorPosY = ConsoleDisplay.files.Length - 1;
                        ConsoleDisplay.Display();
                    }
                }
                break;

                case 't':
                {
                    State.cursorPosY = 0;
                    ConsoleDisplay.Display();
                }
                break;

                case 'i':
                {
                    new FileInfoScreen(State.selectedFile);
                }
                break;

                case 'y':
                {
                    if (Tools.selectionRegister.Contains(State.selectedFile))
                    {
                        Tools.RemoveFromSelectionRegister(State.selectedFile);
                        //move down if possible
                        if (State.cursorPosY < ConsoleDisplay.files.Length - 1)
                        {
                            State.cursorPosY++;
                            ConsoleDisplay.MoveDown();
                        }
                    }
                    else
                    {
                        Tools.CopySelection(State.selectedFile, true);
                    }
                }
                break;

                case 'Y':
                {
                    if (Tools.selectionRegister.Contains(State.currentPath))
                    {
                        Tools.RemoveFromSelectionRegister(State.currentPath);

                        Console.SetCursorPosition(0, Console.WindowTop);
                        Console.Write("Removed ");
                        Console.ForegroundColor = ConsoleColor.Black; Console.BackgroundColor = ConsoleColor.Gray;
                        Console.Write(Path.GetFileName(State.currentPath));
                        Console.ResetColor();
                        Console.Write(" from Selection.");
                    }
                    else
                    {
                        Tools.CopySelection(State.currentPath, false);
                    }
                }
                break;

                case 'p':
                {
                    Tools.PasteSelection();
                    ConsoleDisplay.Display();
                    Console.ReadKey(true);
                }
                break;

                case 'z':
                {
                    Tools.DebugWindow();
                }
                break;
                }
            }while (consoleKeyInfo.Key != ConsoleKey.Escape);
            Console.Clear();
            System.Environment.Exit(0);
        }
        public ConsoleDisplayChild()
        {
            int originalTop = Console.WindowTop;

            for (int i = 0; i < Console.WindowHeight - 5; i++)
            {
                Console.SetCursorPosition(60, Console.WindowTop + 5 + i);
                Console.Write(new string( ' ', Console.WindowWidth - 64 ));
            }
            try
            {
                if (State.selectedFile != null)
                {
                    FileAttributes attr = File.GetAttributes(State.selectedFile);

                    if ((attr & FileAttributes.Directory) == FileAttributes.Directory)
                    {
                        childFiles = ConsoleDisplay.CombineArrays(State.selectedFile);
                        for (int i = 0; i < childFiles.Length; i++)
                        {
                            Console.SetCursorPosition(60, Console.WindowTop + 5 + i);
                            Console.Write("|     ");
                            if (i + 7 >= Console.WindowHeight)
                            {
                                Console.SetCursorPosition(66, Console.WindowTop + 5 + i);

                                FileAttributes attrChild = File.GetAttributes(childFiles[i]);
                                if ((attrChild & FileAttributes.Directory) == FileAttributes.Directory)
                                {
                                    Console.Write(ConsoleDisplay.ShortenFileName("> " + Path.GetFileName(childFiles[i]), 26) + Path.DirectorySeparatorChar);
                                }
                                else
                                {
                                    Console.Write(ConsoleDisplay.ShortenFileName(Path.GetFileName(childFiles[i]), 26));
                                }
                                Console.SetCursorPosition(66, Console.WindowTop + 6 + i);
                                Console.Write("...");
                                break;
                            }
                            else
                            {
                                Console.SetCursorPosition(66, Console.WindowTop + 5 + i);

                                FileAttributes attrChild = File.GetAttributes(childFiles[i]);
                                if ((attrChild & FileAttributes.Directory) == FileAttributes.Directory)
                                {
                                    Console.Write(ConsoleDisplay.ShortenFileName("> " + Path.GetFileName(childFiles[i]), 26) + Path.DirectorySeparatorChar);
                                }
                                else
                                {
                                    Console.Write(ConsoleDisplay.ShortenFileName(Path.GetFileName(childFiles[i]), 26));
                                }
                            }
                        }
                        if (childFiles.Length == 0 && State.selectedFile != State.currentPath)
                        {
                            Console.SetCursorPosition(66, Console.WindowTop + 5);
                            Console.Write("(empty)");
                        }
                    }
                }
            }
            catch (UnauthorizedAccessException)
            {
                Console.SetCursorPosition(66, Console.WindowTop + 5);
                Console.Write("(Unauthorized access)");
            }
            catch (FileNotFoundException e)
            {
                Tools.DisplayError(e);
            }
            Console.SetWindowPosition(0, originalTop);
        }
Beispiel #22
0
 public static void RemoveFromSelectionRegister(string item)
 {
     selectionRegister.Remove(item);
     ConsoleDisplay.RedrawSelectedFile();
 }
Beispiel #23
0
        public void CommadMode()
        {
            Console.CursorVisible = true;
            ConsoleDisplay.ClearLine(Console.WindowTop);
            Console.SetCursorPosition(0, Console.WindowTop);

            Console.ForegroundColor = ConsoleColor.DarkYellow;
            Console.Write(":>");
            Console.ResetColor();

            string command = Console.ReadLine();

            //Add all commands to an array if command isnt found display "Command Not Found"
            string[] commands = new string[] { "q", "c", "p", "x", "v", "preview" };

            switch (command.ToLower())
            {
            case "":
                break;

            case "q":
            {
                Console.Clear();
                Environment.Exit(0);
            }
            break;

            case "c":
            {
                Console.Clear();
                Process process = new Process();
                process.StartInfo.FileName         = "cmd";
                process.StartInfo.UseShellExecute  = true;
                process.StartInfo.WorkingDirectory = State.currentPath;
                process.Start();
                ConsoleDisplay.Display();
            }
            break;

            case "p":
            {
                Console.Clear();
                Process process = new Process();
                process.StartInfo.FileName         = "powershell";
                process.StartInfo.UseShellExecute  = true;
                process.StartInfo.WorkingDirectory = State.currentPath;
                process.Start();
                ConsoleDisplay.Display();
            }
            break;

            case "x":
            {
                Console.Clear();
                Process.Start(@State.currentPath);
                ConsoleDisplay.Display();
            }
            break;

            case "v":
            {
                Console.Clear();
                new About();
                ConsoleDisplay.Display();
            }
            break;

            case "m":
            {
                new FilePreview();
            }
            break;

            default:
            {
                try
                {
                    Console.SetBufferSize(Console.WindowWidth, 999);
                    new ChildProcess(command);
                }
                catch (Exception e)
                {
                    Tools.DisplayError(e);
                }
            }
            break;
            }
            ConsoleDisplay.ClearLine(Console.WindowTop);
            Console.CursorVisible = false;
        }