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