/// <summary> /// Execute flubu internal command. /// </summary> /// <param name="line"></param> /// <returns>Return's true.</returns> public bool ExecuteInternalCommand(string commandLine) { if (commandLine.Trim().Equals(InternalCommands.Dir, StringComparison.OrdinalIgnoreCase)) { DirectoryInfo objDirectoryInfo = new DirectoryInfo(@"."); FileInfo[] allFiles = objDirectoryInfo.GetFiles("*.*", SearchOption.TopDirectoryOnly); var directories = objDirectoryInfo.GetDirectories("*.*"); foreach (var directory in directories) { Console.WriteLine($"{directory.LastWriteTime} <DIR> {directory.Name}"); } var nfi = new NumberFormatInfo { NumberGroupSeparator = "." }; foreach (var entry in allFiles) { Console.WriteLine($"{entry.LastWriteTime} {entry.Length.ToString("#,##0", nfi)} {entry.Name}"); } Console.WriteLine(string.Empty); } else if (commandLine.Equals(InternalCommands.CdBack, StringComparison.OrdinalIgnoreCase)) { Directory.SetCurrentDirectory(Path.GetFullPath("..")); } else if (commandLine.Equals(InternalCommands.CdBackToDisk, StringComparison.OrdinalIgnoreCase)) { Directory.SetCurrentDirectory(Path.GetPathRoot(Directory.GetCurrentDirectory())); } else if (commandLine.StartsWith(InternalCommands.Cd, StringComparison.OrdinalIgnoreCase)) { var splitedLine = commandLine.Split(' ').ToList(); if (splitedLine.Count > 1) { var newPath = Path.GetFullPath(splitedLine[1]); if (Directory.Exists(newPath)) { Directory.SetCurrentDirectory(newPath); } } } else if (commandLine.StartsWith(InternalCommands.Cls, StringComparison.OrdinalIgnoreCase)) { Console.Clear(); ConsoleUtils.WritePrompt(Directory.GetCurrentDirectory()); } else { return(false); } return(true); }
private static void ClearConsoleLines(int startline, int endline) { for (var i = startline; i <= endline; i++) { Console.SetCursorPosition(0, i); Console.Write(new string(' ', Console.WindowWidth)); } Console.SetCursorPosition(0, startline); ConsoleUtils.WritePrompt(); }
private void ClearConsoleLines(int startline, int endline) { for (var i = startline; i <= endline; i++) { Console.SetCursorPosition(0, i); Console.Write(new string(' ', Console.WindowWidth)); } Console.SetCursorPosition(0, startline); ConsoleUtils.WritePrompt(_currentDirectory); Console.SetCursorPosition(_currentDirectory.Length + 1, startline); }
private void ClearConsoleLinesAndWriteInitialText(int startline, int endline) { ClearConsoleLines(startline, endline); var text = !string.IsNullOrEmpty(_options.InitialText) ? _options.InitialText : _currentDirectory; if (_options.WritePrompt) { ConsoleUtils.WritePrompt(text); } else { ConsoleUtils.Write(text, ConsoleColor.Green); } }