確定 C# 控制台應用程式中的輸入來源
許多控制台應用程式需要區分鍵盤輸入和從檔案重定向的輸入。 這對於根據輸入的來源自訂應用程式行為至關重要。
最有效的方法
偵測輸入重新導向的最有效方法是透過 P/Invoke 使用 Windows FileType()
API 函數。 以下幫助程式類別簡化了此過程:
<code class="language-csharp">public static class ConsoleEx { public static bool IsInputRedirected => FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin)); // P/Invoke declarations (omitted for brevity) }</code>
實作
檢查重定向輸入很簡單:
<code class="language-csharp">bool isRedirected = ConsoleEx.IsInputRedirected;</code>
增強的 .NET 4.5 功能
需要注意的是,.NET 4.5 及更高版本包含用於此目的的內建功能。 輔助類是不必要的;相反,使用:
<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
以上是如何在 C# 中偵測輸入重定向(鍵盤與檔案)?的詳細內容。更多資訊請關注PHP中文網其他相關文章!