본문 바로가기
프로그래밍/C#

[C#] 드라이브 용량 조회하기

by 코딩연습생 2020. 9. 15.
반응형

안녕하세요

 

코딩연습생입니다~

 

이번 포스팅은 저번 포스팅에 이어서 C#으로 드라이브 용량을 표시하는 프로그램을 만들어 보겟습니다

 

저번 포스팅에서 기간별 폴더 자동 삭제 프로그램을 만들어 봤었는데 

 

현재 내 드라이브 용량이 얼마나 남았는지 확인하면 좋을거 같아서 이어서 포스팅하게 되엇습니다

 

이전 글을 확인하시고자 한다면 아래 링크를 통해 확인하시면 됩니다

 

https://codingman.tistory.com/122

 

[C#] 기간별 폴더 정리(삭제)하기

안녕하세요 코딩연습생입니다~ 이번 포스팅은 C# 언어로 기간별 폴더를 자동 관리하기 위한 삭제 프로그램을 만들어 볼려고 합니다 [준비과정] 1. Form1을 생성하여 기준일을 생성할 텍스트 박스��

codingman.tistory.com

[준비 과정]

1. 비쥬얼 스튜디오 기본 컨트롤러 필요

   - 포스그레스바(ProgressBar), 레이블(Lable), 버튼(Button)

2. 디자인 폼은 이전 포스팅에서 만든 것을 이용할 예정입니다

 

[디자인]

1. ProgressBar

2. Lable를 통한 명칭 표시 및 용량 표시

3. 버튼을 통한 조회

 

[코딩]

- 조회 버튼 클릭 이벤트 발생시 프로그레스바(ProgressBar)용량 표시 및 Lable 수치 값 표시

1. SetDriveSize 변수 생성

   - 프로그레스바(ProgressBar) 및 Lable 값 생성

        public void SetDriveSize(DriveInfo drive, ProgressBar pb, Label title, Label lb)
        {
            string driveName = string.Empty;
            string totalSize = string.Empty;
            string freeSize = string.Empty;
            string usage = string.Empty;

            try
            {
                driveName = drive.Name.Substring(0, 1).ToString();
                totalSize = Convert.ToInt32(drive.TotalSize / 1024 / 1024 / 1024).ToString();
                freeSize = Convert.ToInt32(drive.AvailableFreeSpace / 1024 / 1024 / 1024).ToString();
                usage = (Convert.ToInt32(totalSize) - Convert.ToInt32(freeSize)).ToString();

                pb.Maximum = Convert.ToInt32(totalSize);
                pb.Value = Convert.ToInt32(usage);

                title.Text = string.Format("Disk ({0}:)", driveName);
                title.AutoSize = true;

                lb.Text = string.Format("{0}GB of {1}GB available.", totalSize, freeSize);
                lb.AutoSize = true;
            }
            catch { }
        }

2. GetDrivesize 변수 생성

   - 조회 할려는 드라이브 찾기

        public void GetDriveSize()
        {
            DriveInfo[] drives = DriveInfo.GetDrives();

            foreach(DriveInfo drive in drives)
            {
                if(drive.DriveType == DriveType.Fixed)
                {
                    if(drive.Name.Contains("D"))
                    {
                        SetDriveSize(drive, progressBar1, label24, label25);
                    }
                }
            }
        }

 

3. 버튼 클릭 이벤트를 통한 호출

        private void customButton7_Click(object sender, EventArgs e)
        {
            if (One_Click())
            {
                GetDriveSize();
            }
        }

 

[실행 결과]

- 조회 버튼 클릭시 지정한 드라이브의 용량을 이렇게 표시 해줍니다

 

- 실제 드라이브 상태

반응형

댓글