Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# FileNotFoundException 예외란? 원인과 예방 방법 총정리

C# FileNotFoundException이란?

C# 프로그래밍에서 FileNotFoundException은 코드가 접근하려는 파일이 실제로 존재하지 않을 때 발생하는 예외입니다. 파일 입출력(I/O) 작업 중 지정한 경로에 해당 파일이 없으면 .NET 런타임이 이 예외를 던지며, 처리하지 않으면 프로그램이 비정상 종료됩니다.

예외가 발생하는 대표적인 상황

대표적인 예로, StreamReader() 메서드를 사용해 존재하지 않는 파일을 열려고 하는 경우를 들 수 있습니다.

reader = new StreamReader("new.txt"))

파일의 내용을 읽어오기 위해서는 다음과 같은 메서드를 사용합니다.

reader.ReadToEnd();

그럼 전체 코드를 살펴보겠습니다.

예제 코드

using System.IO;
using System;

class Program {
    static void Main() {
        using (StreamReader reader = new StreamReader("new.txt")) {
            reader.ReadToEnd();
        }
    }
}

위 코드를 실행하면 파일 "new.txt"가 존재하지 않기 때문에 다음과 같은 예외가 발생합니다.

Unhandled Exception:
System.IO.FileNotFoundException: Could not find file …

FileNotFoundException 예방하기

이러한 예외를 사전에 방지하려면 파일을 열기 전에 반드시 해당 파일의 존재 여부를 확인하는 습관이 필요합니다. File.Exists() 메서드를 활용하면 안전하게 처리할 수 있습니다.

using System.IO;
using System;

class Program {
    static void Main() {
        string path = "new.txt";

        if (File.Exists(path)) {
            using (StreamReader reader = new StreamReader(path)) {
                Console.WriteLine(reader.ReadToEnd());
            }
        } else {
            Console.WriteLine("파일이 존재하지 않습니다.");
        }
    }
}

또한 try-catch 블록으로 FileNotFoundException을 명시적으로 처리하면, 파일이 없는 상황에서도 프로그램이 안정적으로 동작하도록 만들 수 있습니다. 파일 경로 오타나 잘못된 작업 디렉터리 설정도 흔한 원인이므로, 경로를 항상 꼼꼼히 검토하는 것이 좋습니다.