[C#]使用 DriveInfo 類別取得磁碟資訊

  • 17052
  • 0
  • 2011-06-28

[C#]使用 DriveInfo 類別取得磁碟資訊

 

DriveInfo 類別 : 提供對磁碟上資訊的存取。

以所要存取的磁碟名稱為參數,引用建構式就能建立 DriveInfo 實體物件,透過該物件成員,就能取得磁碟相關資訊。

DriveInfo 類別有一個宣告 static (Shared) 方法成員 GetDrive(),可以取得目前本機上所有磁碟機的 DriveInfo 集合。接著說明 DriveInfo 類別的屬性成員。

名稱 說明
AvailableFreeSpace 指出磁碟上的可用空間量。
DriveFormat 取得檔案系統的名稱,例如 NTFS 或 FAT32。
DriveType 取得磁碟類型。
IsReady 取得值,指出磁碟是否就緒。
Name 取得磁碟名稱。
RootDirectory 取得磁碟的根目錄。
TotalFreeSpace 取得磁碟上可用空間的總量。
TotalSize 取得磁碟上儲存空間的總大小。
VolumeLabel 取得或設定磁碟的磁碟區標籤。

 

底下是一個簡單的範例程式,一開始會先載入目前本機上所有磁碟,選擇磁碟後,顯示磁碟相關資訊。

SNAGHTML1328d8

範例程式碼

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

using System.IO;

namespace WinFromDriveInfo
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            DriveInfo[] drives = DriveInfo.GetDrives();
            foreach (DriveInfo drive in drives)
            {
                cmbDrive.Items.Add(drive.ToString());
            }
        }

        private void cmbDrive_SelectedIndexChanged(object sender, EventArgs e)
        {
            lbDriveInfo.Items.Clear();
            DriveInfo drive = new DriveInfo(cmbDrive.SelectedItem.ToString());
            if (drive.IsReady)
            {
                lbDriveInfo.Items.Add("磁碟 : " + drive.ToString());
                lbDriveInfo.Items.Add("標籤 : " + drive.VolumeLabel);
                lbDriveInfo.Items.Add("名稱 : " + drive.Name);
                lbDriveInfo.Items.Add("可用空間 : " + drive.AvailableFreeSpace);
                lbDriveInfo.Items.Add("可用大小 : " + drive.TotalSize);
                lbDriveInfo.Items.Add("可用總空間 : " + drive.TotalFreeSpace);
                lbDriveInfo.Items.Add("格式 : " + drive.DriveFormat);
                lbDriveInfo.Items.Add("型態 : " + drive.DriveType);
                lbDriveInfo.Items.Add("根目錄 : " + drive.RootDirectory);
            }
            else
            {
                lbDriveInfo.Items.Add("磁碟 " + drive.ToString() + "未就緒");
            }            
        }
    }
}

範例下載

WinFromDriveInfo.zip