C# clear Console last Item and replace new? Console Animation
以下CSharp代码(仅示例):
1 2 3 4 5 6 | Console.WriteLine("Searching file in..."); foreach(var dir in DirList) { Console.WriteLine(dir); } |
输出打印为:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Searching file in... dir1 dir2 dir3 dir4 . . . |
号
有问题吗?我怎样才能得到输出
1 2 3 | Searching file in... dir1 |
(then clear dir1 and print dir2 and so on)All next dir name wiil replace the previous dir
号
使用
比如:
1 2 | Console.WriteLine(dir); Console.SetCursorPosition(0, Console.CursorTop - 1); |
号
编辑:
根据您的意见,您可以执行以下操作:
1 2 3 4 5 6 | Console.WriteLine("Searching file in..."); foreach (var dir in DirList) { ClearCurrentConsoleLine(); Console.Write(dir); } |
其中
1 2 3 4 5 6 7 8 | public static void ClearCurrentConsoleLine() { int currentLineCursor = Console.CursorTop; Console.SetCursorPosition(0, Console.CursorTop); for (int i = 0; i < Console.WindowWidth; i++) Console.Write(""); Console.SetCursorPosition(0, currentLineCursor); } |
。
如果您的问题是清除控制台,则使用方法
1 2 3 4 5 6 | Console.WriteLine("Searching file in..."); foreach(var dir in DirList) { Console.SetCursorPosition(1,0); Console.WriteLine(dir); } |
你可以用"r"打印,这样光标就不会跳一行,你可以重写它。
1 2 3 4 5 | foreach(var dir in DirList) { Console.Write(" {0}% ",dir); } |
。
在数字后使用空格确保所有内容都被删除,并使用.write而不是writeline因为您不想添加""
只需保存
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 | Console.WriteLine("Searching file in..."); // save the current cursor position var cursorLeft = Console.CursorLeft; var cursorTop = Console.CursorTop; // build a format string to establish the maximum width do display var maxWidth = 60; var fmt = String.Format("{{0,-{0}}}", maxWidth); foreach (var dir in dirList) { // restore the cursor position Console.SetCursorPosition(cursorLeft, cursorTop); // trim the name if necessary var name = Path.GetFileName(dir); if (name.Length > maxWidth) name = name.Substring(0, maxWidth); // write the trimmed name Console.Write(fmt, name); // do some work } Console.WriteLine(); // end the previous line |
虽然这是一个相当古老的职位,我会张贴我的方法。也许这能帮助别人
1 2 3 4 | Console.SetCursorPosition(0, Console.CursorTop); Console.Write(new String(' ', Console.WindowWidth)); Console.SetCursorPosition(0, Console.CursorTop); Console.Write(dir); |
我想这就是你想要的;)
1 2 3 4 5 | Console.WriteLine("Searching file in..."); foreach(var dir in DirList) { Console.Write("r" + dir); } |
。
我认为这会满足你的要求:
1 2 3 4 5 6 |
。
基本上与@digemall建议的相同,但它使用实际的字符而不是console.windowwidth