C#으로 프로그램을 개발하다 보면 특정 경로에 파일이 실제로 존재하는지 확인해야 하는 상황이 자주 발생합니다. 예를 들어 설정 파일을 읽거나 로그 파일을 생성하기 전에 해당 파일이 있는지 먼저 검사하면, 불필요한 예외 발생을 막고 안정적인 코드를 작성할 수 있습니다.
File.Exists() 메서드란?
C#에서는 System.IO 네임스페이스에 포함된 File.Exists() 메서드를 사용하여 파일의 존재 여부를 간단하게 확인할 수 있습니다. 이 메서드는 지정한 경로에 파일이 존재하면 true, 존재하지 않으면 false를 반환합니다.
기본 사용 예시
다음과 같은 파일이 있다고 가정해 보겠습니다.
E:\new.txt
위 파일의 존재 여부를 확인하려면 Exists() 메서드를 다음과 같이 사용합니다.
if (File.Exists(@"E:\new.txt")) {
Console.WriteLine("파일이 존재합니다...");
}여기서 문자열 앞에 붙은 @ 기호는 축자적 문자열 리터럴(verbatim string literal)을 의미하며, 경로 구분 기호인 역슬래시(\)를 이스케이프 처리하지 않고 그대로 사용할 수 있게 해줍니다.
전체 코드 예제
파일 존재 여부를 확인하는 전체 코드는 다음과 같습니다.
using System;
using System.IO;
public class Demo {
public static void Main() {
if (File.Exists(@"E:\new.txt")) {
Console.WriteLine("파일이 존재합니다...");
} else {
Console.WriteLine("E 드라이브에 해당 파일이 존재하지 않습니다!");
}
}
}실행 결과
E 드라이브에 해당 파일이 존재하지 않습니다!
주의 사항 및 팁
- 네임스페이스 선언:
File클래스를 사용하려면 반드시using System.IO;를 코드 상단에 추가해야 합니다. - 권한 문제: 파일이 존재하더라도 접근 권한이 없으면 메서드가
false를 반환할 수 있습니다. - null 값 처리: 경로 매개변수가
null인 경우에도false를 반환하므로 별도의 null 검사 없이 안전하게 사용할 수 있습니다.
이처럼 File.Exists() 메서드를 활용하면 한 줄의 조건문으로 파일 존재 여부를 손쉽게 검사할 수 있어, 파일 입출력 작업의 안정성을 크게 높일 수 있습니다.