> 백엔드 개발 > C++ > C# 콘솔 응용 프로그램의 입력이 키보드에서 오는지 아니면 파일에서 오는지 어떻게 확인할 수 있나요?

C# 콘솔 응용 프로그램의 입력이 키보드에서 오는지 아니면 파일에서 오는지 어떻게 확인할 수 있나요?

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

How Can I Determine if a C# Console Application's Input is from the Keyboard or a File?

C# 콘솔 앱의 파일 리디렉션과 키보드 입력 구별

이 문서에서는 C# 콘솔 애플리케이션의 입력이 키보드에서 발생하는지 아니면 리디렉션된 파일에서 발생하는지 확인하는 방법을 보여줍니다. 이 기능은 입력 소스에 따라 동작을 조정하는 애플리케이션을 만드는 데 필수적입니다.

P/Invoke를 이용한 방법

Windows API 기능FileType()이 솔루션을 제공합니다. 이 기능은 다음 C# 도우미 클래스에 래핑되어 있습니다.

<code class="language-csharp">public static class ConsoleEx
{
    private enum FileType { Unknown, Disk, Char, Pipe };
    private enum StdHandle { Stdin = -10, Stdout = -11, Stderr = -12 };

    [DllImport("kernel32.dll")]
    private static extern FileType GetFileType(IntPtr hdl);
    [DllImport("kernel32.dll")]
    private static extern IntPtr GetStdHandle(StdHandle std);

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

구현

리디렉션된 입력을 확인하려면 다음을 사용하세요.

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

대안: .NET 4.5 이상

.NET Framework 4.5 이상 버전의 경우 Console 클래스는 기본 제공 속성을 제공합니다.

  • Console.IsInputRedirected
  • Console.IsOutputRedirected
  • Console.IsErrorRedirected

이러한 속성은 입력 리디렉션을 감지하는 보다 간단한 접근 방식을 제공합니다. 프로젝트의 .NET Framework 버전에 가장 적합한 방법을 선택하세요.

위 내용은 C# 콘솔 응용 프로그램의 입력이 키보드에서 오는지 아니면 파일에서 오는지 어떻게 확인할 수 있나요?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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