C#에서 특정 파일이 실제로 존재하는지 확인해야 하는 경우가 자주 있습니다. 예를 들어, 프로그램이 설정 파일을 읽기 전에 해당 파일이 있는지 먼저 검사하면 FileNotFoundException 같은 런타임 오류를 미리 방지할 수 있습니다.
C#에서는 System.IO 네임스페이스에 포함된 File.Exists() 메서드를 사용하여 파일의 존재 여부를 간단하게 확인할 수 있습니다. 이 메서드는 파일이 존재하면 true, 존재하지 않으면 false를 반환합니다.
현재 디렉터리에서 파일 확인하기
먼저, 프로그램이 실행되는 현재 디렉터리에 파일이 있는지 확인하는 방법입니다. 파일 이름만 인수로 전달하면 됩니다.
if (File.Exists("MyFile.txt")) {
Console.WriteLine("파일이 존재합니다.");
}특정 경로(디렉터리)에서 파일 확인하기
다음은 지정된 경로에 파일이 존재하는지 확인하는 방법입니다. 경로 앞에 @ 기호를 붙이면 이스케이프 문자 처리 없이 경로를 그대로 사용할 수 있어 편리합니다.
if (File.Exists(@"D:\myfile.txt")) {
Console.WriteLine("파일이 존재합니다.");
}전체 예제 코드
아래는 현재 디렉터리와 D 드라이브 두 곳에서 각각 파일의 존재 여부를 확인하는 완전한 C# 예제입니다.
using System;
using System.IO;
class Demo {
static void Main() {
if (File.Exists("MyFile.txt")) {
Console.WriteLine("파일이 존재합니다...");
} else {
Console.WriteLine("현재 디렉터리에 파일이 존재하지 않습니다!");
}
if (File.Exists(@"D:\myfile.txt")) {
Console.WriteLine("파일이 존재합니다...");
} else {
Console.WriteLine("D 드라이브에 파일이 존재하지 않습니다!");
}
}
}실행 결과
두 위치 모두에 파일이 없는 경우, 프로그램은 다음과 같은 출력을 보여줍니다.
현재 디렉터리에 파일이 존재하지 않습니다! D 드라이브에 파일이 존재하지 않습니다!
참고 사항
File.Exists() 메서드는 파일이 존재하지만 접근 권한이 없는 경우에도 false를 반환할 수 있다는 점에 유의하세요. 또한 이 메서드는 호출 시점의 파일 상태만 확인하므로, 그 직후 다른 프로세스가 파일을 삭제하거나 변경할 가능성도 항상 염두에 두어야 합니다.