2012-11-22 2 views
5

可能性の重複をリダイレクトします。私たちのシステムは現在、コンソール上に印刷した最後のものの上に書くことCursorLeft機能を使用している
How can I determine whether Console.Out has been redirected to a file?
How to detect if Console.In (stdin) has been redirected?コンソールがConsole.CursorLeft

ウィンドウ:

Console.CursorLeft = 0; 

これは必要な機能なので、毎回新しい行を印刷するだけでは変更できません。

コンソールをテキストファイルにリダイレクトすると、IOExceptionが発生します。これらの出力を表示しないようにログファイルを取得するにはどうしたらいいですか?

答えて

0

コンソールはファイルとは異なることは間違いありません。 たとえば、出力をファイルにリダイレクトするときに失われるコンソールの色を使用できます。 リダイレクト後、すべてのコンソール機能を保持できるとは限りません。 私は、それが実現可能ではないと思われるので、その要件に疑問を提出することを提案します。とにかくここ

は、下に同じのWin32APIに基づいて同様の問題である:ここでは"The handle is invalid" when running .net console via java

は、コンソールが(ページの一番下に)どのように機能するかについていくつかの情報を持っているMSDNの記事です:http://msdn.microsoft.com/en-us/library/system.console.aspx

もう1つのことは、この問題を修正できないかもしれないが、アプリケーションを間違いなく再構築することができるため、作成するすべての変更を蓄積するバッファクラスを使ってコンソールとの直接対話を抽象化できることです仮想バッファ内の1行(または複数行)に移動してから、Console.WriteLineを1回呼び出すだけですべての変更が完了し、その行がもう変更されないことを確認してください。

関連する問題