C#에서 드라이브의 여유 공간 확인하기
C#에서 특정 드라이브의 남은 용량(여유 공간)을 확인하려면 System.IO 네임스페이스의 DriveInfo 클래스가 제공하는 AvailableFreeSpace와 TotalFreeSpace 속성을 사용하면 됩니다. 이 두 속성은 모두 바이트(byte) 단위의 long 값을 반환합니다.
1. DriveInfo 객체 생성
먼저 확인하고자 하는 드라이브 이름을 지정하여 DriveInfo 객체를 생성합니다.
DriveInfo dInfo = new DriveInfo("D");위 코드처럼 드라이브 문자만 인수로 전달하면 해당 드라이브의 정보를 담은 객체가 만들어집니다. 여기서는 D 드라이브의 여유 공간을 조회한다고 가정하겠습니다.
2. 전체 예제 코드
다음은 D 드라이브의 사용 가능한 여유 공간과 총 여유 공간을 콘솔에 출력하는 완전한 예제입니다.
예제
using System;
using System.Linq;
using System.IO;
public class Demo {
public static void Main() {
DriveInfo dInfo = new DriveInfo("D");
// 사용 가능한 여유 공간
Console.WriteLine(dInfo.AvailableFreeSpace);
// 총 여유 공간
Console.WriteLine(dInfo.TotalFreeSpace);
}
}실행 결과
프로그램을 실행하면 다음과 같이 D 드라이브의 여유 공간이 바이트 단위로 출력됩니다.
722243567912
722243567912AvailableFreeSpace와 TotalFreeSpace의 차이점
두 속성은 비슷해 보이지만 의미가 조금씩 다릅니다.
- AvailableFreeSpace : 현재 실행 중인 사용자가 실제로 사용할 수 있는 여유 공간을 반환합니다. 디스크 할당량(disk quota)이 설정된 시스템이라면 할당량이 반영된 값이므로, 일반적으로 이 속성을 사용하는 것이 안전합니다.
- TotalFreeSpace : 사용자 할당량과 무관하게 해당 드라이브에 물리적으로 남아 있는 전체 여유 공간을 반환합니다.
참고 사항
존재하지 않거나 접근할 수 없는 드라이브 문자를 지정하면 DriveNotFoundException 또는 ArgumentException이 발생할 수 있으므로, 필요하다면 DriveInfo.IsReady 속성으로 드라이브가 준비되었는지 먼저 확인하는 것이 좋습니다.