当打印输入流很大时,如何避免自动清除控制台?

时间:2019-01-06 18:41:54

标签: c# console

我编写了一个程序,打印出驱动器上的所有目录以及它们到控制台的完整路径(下面的代码)。问题是当输入流变大时,控制台会自动清除。因此,我无法获得所有路径,因为不久后控制台将自动清除。我该如何避免呢?

public static void ListDirectories(DirectoryInfo[] directory)  
    {  
        foreach (DirectoryInfo info in directory)  
        {  
            Console.WriteLine(info.FullName);  
            try  
            {  
                if (info.GetDirectories().Length > 0)  
                    ListDirectories(info.GetDirectories());  
            }  
            catch (UnauthorizedAccessException e)  
            {  
                continue;  
            }  
        }  
    }

2 个答案:

答案 0 :(得分:0)

这与c#无关。

此外,我建议您将输出写入txt文件或其他格式。

答案 1 :(得分:0)

您的程序正在将信息写入进程的 Output 流(也称为 Standard Output )。例如,Console.WriteLineConsole.Out.WriteLine相同。

您可以在运行程序时重定向该信息流,而无需更改代码。运行程序时,请为其指定要向其写入流的文件的名称,例如:

YourProgram.exe >YourOutputFile.txt

(您可以根据需要提供完全限定的文件名。)这将每次覆盖该文件。如果要将其附加到现有文件(如果有),则使用>>而不是>