Maison >développement back-end >C++ >Comment puis-je détecter les entrées de console redirigées en C# ?
Détermination de l'entrée de console redirigée dans les applications C#
Les applications console s'appuient fortement sur les opérations d'entrée/sortie. Cependant, la source de cette entrée, qu'il s'agisse d'un clavier ou d'un flux redirigé (comme un fichier), peut modifier considérablement le comportement de l'application. Cet article montre comment détecter efficacement les entrées de console redirigées en C#.
Vérification de la redirection
La méthode la plus simple utilise la fonction FileType()
. Une classe d'assistance simplifie cette vérification :
<code class="language-csharp">public static class ConsoleHelper { public static bool IsInputRedirected() { return FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin)); } }</code>
Mise en œuvre
Pour utiliser l'assistant, appelez simplement :
<code class="language-csharp">bool isRedirected = ConsoleHelper.IsInputRedirected();</code>
Un résultat true
indique que l'entrée provient d'une source autre que le clavier (par exemple, un fichier).
Méthodes natives sous-jacentes
L'assistant utilise ces fonctions de l'API Win32 :
FileType
: Énumère les types de fichiers (Inconnu, Disque, Char, Pipe).StdHandle
: Représente les poignées standard (Stdin, Stdout, Stderr).GetFileType
: Récupère le type d'un handle donné.GetStdHandle
: obtient un identifiant pour un appareil standard.Simplification de .NET 4.5 et versions ultérieures
.NET Framework 4.5 et versions ultérieures fournissent une méthode intégrée plus concise :
<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
Cela renvoie directement un booléen indiquant l'état de redirection.
En employant ces techniques, les développeurs peuvent créer des applications console robustes qui adaptent leurs fonctionnalités en fonction de la source d'entrée, améliorant ainsi l'expérience utilisateur et la flexibilité des applications.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!