Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C#으로 디스크 여유 공간 확인하는 방법

C#에서는 DriveInfo 클래스를 활용하면 특정 드라이브의 여유 공간과 전체 용량을 손쉽게 조회할 수 있습니다. 이 클래스는 System.IO 네임스페이스에 포함되어 있어, 별도의 외부 라이브러리 설치 없이 바로 사용할 수 있습니다.

1. DriveInfo 인스턴스 생성

먼저 확인하고자 하는 드라이브 문자를 지정하여 DriveInfo 객체를 생성합니다. 아래 예제는 E 드라이브의 정보를 가져오는 코드입니다.

DriveInfo dInfo = new DriveInfo("E");

2. 여유 공간 표시하기

AvailableFreeSpace 속성을 사용하면 해당 드라이브의 실제 사용 가능한 여유 공간(바이트 단위)을 확인할 수 있습니다.

Console.WriteLine("디스크 여유 공간 = {0}", dInfo.AvailableFreeSpace);

참고로 TotalFreeSpace 속성도 존재하지만, 이 값은 디스크 할당량(quota)을 고려하지 않은 순수한 물리적 여유 공간을 의미합니다. 현재 사용자가 실제로 활용할 수 있는 공간을 알고 싶다면 AvailableFreeSpace를 사용하는 것이 좋습니다.

3. 여유 공간 비율(백분율) 계산하기

여유 공간이 전체 디스크 용량에서 차지하는 비율을 구하려면 AvailableFreeSpaceTotalSize로 나눈 뒤 100을 곱하면 됩니다. 정확한 소수점 계산을 위해 float 형변환을 적용합니다.

Double pc = (dInfo.AvailableFreeSpace / (float)dInfo.TotalSize) * 100;

계산된 백분율 값을 출력합니다. 서식 지정자 {0:0.00}을 사용하면 소수점 둘째 자리까지 깔끔하게 표시할 수 있습니다.

Console.WriteLine("\n 여유 공간 (비율) = {0:0.00}%.", pc);

전체 예제 코드

지금까지 설명한 내용을 하나의 프로그램으로 정리하면 다음과 같습니다.

using System;
using System.IO;

class Program {
   static void Main() {
      DriveInfo dInfo = new DriveInfo("E");

      Console.WriteLine("디스크 여유 공간 = {0}", dInfo.AvailableFreeSpace);

      Double pc = (dInfo.AvailableFreeSpace / (float)dInfo.TotalSize) * 100;

      Console.WriteLine("\n 여유 공간 (비율) = {0:0.00}%.", pc);
   }
}

실행 결과 예시

디스크 여유 공간 = 52428800000

 여유 공간 (비율) = 48.83%.

주의 사항

존재하지 않거나 접근할 수 없는 드라이브를 지정하면 DriveNotFoundException 또는 ArgumentException이 발생할 수 있습니다. 따라서 실무에서는 DriveInfo.IsReady 속성으로 드라이브가 준비 상태인지 먼저 확인한 후 정보를 조회하는 것이 안전합니다.

if (dInfo.IsReady) {
   Console.WriteLine("여유 공간 = {0}", dInfo.AvailableFreeSpace);
}