C#에서 파일의 용량이 몇 바이트인지 확인해야 하는 경우가 자주 있습니다. 예를 들어 업로드 전에 파일 크기를 검증하거나, 디스크 사용량을 계산하거나, 로그를 남길 때 유용하게 활용됩니다.
C#에서는 System.IO 네임스페이스의 FileInfo 클래스를 사용하면 간단하게 해결할 수 있습니다. FileInfo 객체는 Length라는 속성을 제공하며, 이 속성이 해당 파일의 바이트 수를 나타냅니다.
FileInfo와 Length 속성
FileInfo는 특정 파일에 대한 정보(크기, 생성 시간, 확장자 등)를 담고 있는 클래스입니다. 그중 Length 속성은 파일의 크기를 long 타입의 바이트 단위로 반환합니다. 파일이 존재하지 않으면 예외가 발생할 수 있으므로, 실제 프로젝트에서는 Exists 속성으로 파일 존재 여부를 먼저 확인하는 것이 안전합니다.
구현 단계
먼저 확인하려는 파일 경로로 FileInfo 객체를 생성합니다.
FileInfo file = new FileInfo("D:\\new");그다음 Length 속성을 읽으면 파일의 바이트 크기를 얻을 수 있습니다.
file.Length
전체 코드
아래는 위 과정을 하나로 합친 완전한 예제 코드입니다.
using System;
using System.Linq;
using System.IO;
class Program {
static void Main() {
// 파일 경로 지정
FileInfo file = new FileInfo("D:\\new");
// 파일 존재 여부 확인 후 크기 조회
if (file.Exists) {
long res = file.Length;
Console.WriteLine("Bytes: " + res);
} else {
Console.WriteLine("파일이 존재하지 않습니다.");
}
}
}실행 결과
위 프로그램을 실행하면 다음과 같이 파일의 바이트 수가 출력됩니다.
3259244
출력 결과에서 볼 수 있듯이 약 3MB(3,259,244바이트) 크기의 파일임을 확인할 수 있습니다. 만약 KB나 MB 단위로 표시하고 싶다면 값을 1024로 나누거나 나눗셈을 반복하여 변환하면 됩니다.