> 백엔드 개발 > C++ > C#에서 리디렉션된 콘솔 입력을 어떻게 감지할 수 있습니까?

C#에서 리디렉션된 콘솔 입력을 어떻게 감지할 수 있습니까?

DDD
풀어 주다: 2025-01-12 17:02:42
원래의
660명이 탐색했습니다.

How Can I Detect Redirected Console Input in C#?

C# 애플리케이션에서 리디렉션된 콘솔 입력 결정

콘솔 애플리케이션은 입력/출력 작업에 크게 의존합니다. 그러나 키보드 또는 리디렉션된 스트림(예: 파일) 등 이 입력 소스는 애플리케이션 동작을 크게 변경할 수 있습니다. 이 문서에서는 C#에서 리디렉션된 콘솔 입력을 효과적으로 감지하는 방법을 보여줍니다.

리디렉션 확인 중

가장 간단한 방법은 FileType() 함수를 사용하는 것입니다. 도우미 클래스는 이 검사를 단순화합니다.

<code class="language-csharp">public static class ConsoleHelper {
    public static bool IsInputRedirected() {
        return FileType.Char != GetFileType(GetStdHandle(StdHandle.Stdin));
    }
}</code>
로그인 후 복사

구현

도우미를 사용하려면 다음으로 전화하세요.

<code class="language-csharp">bool isRedirected = ConsoleHelper.IsInputRedirected();</code>
로그인 후 복사

true 결과는 입력이 키보드가 아닌 소스(예: 파일)에서 발생했음을 나타냅니다.

기본 네이티브 메소드

도우미는 다음 Win32 API 기능을 활용합니다.

  • FileType: 파일 유형을 열거합니다(알 수 없음, 디스크, 문자, 파이프).
  • StdHandle: 표준 핸들(Stdin, Stdout, Stderr)을 나타냅니다.
  • GetFileType: 주어진 핸들의 유형을 검색합니다.
  • GetStdHandle: 표준 장치에 대한 핸들을 가져옵니다.

.NET 4.5 이상 단순화

.NET Framework 4.5 이상 버전에서는 더욱 간결한 내장 메서드를 제공합니다.

<code class="language-csharp">bool isRedirected = Console.IsInputRedirected;</code>
로그인 후 복사

이것은 리디렉션 상태를 나타내는 부울을 직접 반환합니다.

이러한 기술을 활용하면 개발자는 입력 소스에 따라 기능을 조정하는 강력한 콘솔 애플리케이션을 구축하여 사용자 경험과 애플리케이션 유연성을 향상할 수 있습니다.

위 내용은 C#에서 리디렉션된 콘솔 입력을 어떻게 감지할 수 있습니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php.cn
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿