10.1 DriveInfo类获取磁盘分区信息
版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。
DriveInfo类提供磁盘分区信息。
DriveInfo常用属性:
- Name:驱动器的名称,如 C:\。
- DriveFormat:磁盘分区文件系统的名称,例如 NTFS、FAT32等。
- DriveType:驱动器类型,包括CDRom(光驱),Fixed(固定磁盘),Network(网络设备),NoRootDirectory(没有根目录),Ram(随机存取存储器),Removable(可移动设备),或Unknown(未知设备)。
注意:移动硬盘会识别为Fixed,优盘识别为Removable。
- IsReady:指示分区是否已准备就绪可以读写。
- VolumeLabel:驱动器的卷标。
- RootDirectory:驱动器的根目录。
- TotalSize:存储空间的总大小(以字节为单位)。
- TotalFreeSpace:可用空闲空间总量(以字节为单位)。
- AvailableFreeSpace:可用空闲空间总量(以字节为单位)。
注意:AvailableFreeSpace不同于TotalFreeSpace,AvailableFreeSpace是当前账号的可用的空闲磁盘配额。
DriveInfo重要方法:
- GetDrives:检索计算机上的所有逻辑驱动器的驱动器,返回DriveInfo数组
注意:此方法是静态方法,不用定义实例即可使用。
【例 10.1】【项目:code10-001】获得计算机上磁盘分区的信息。
private void Form1_Load(object sender, EventArgs e)
{
//窗体载入时,将所有分区的名称加入ComboBox1
foreach (DriveInfo drive in DriveInfo.GetDrives())
{
comboBox1.Items.Add(drive.Name);
}
}
private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
{
//将分区名称传入DriveInfo构造函数
DriveInfo drive = new DriveInfo(comboBox1.Text);
if(drive.IsReady)
{
textBox1.Text = "";
textBox1.Text += "选择盘符:" + drive.Name + "\r\n";
textBox1.Text += "卷标名称:" + drive.VolumeLabel + "\r\n";
textBox1.Text += "分区类型:" + getDriveType(drive.DriveType) + "\r\n";
//以下使用了Math.Round方法进行四舍五入保留两位小数
textBox1.Text += "分区大小:" + Math.Round((double)(drive.TotalSize / 1024 / 1024 / 1024), 2, MidpointRounding.AwayFromZero)+ "GB" + "\r\n";
textBox1.Text += "剩余空间:" + Math.Round((double)(drive.TotalFreeSpace / 1024 / 1024 / 1024), 2, MidpointRounding.AwayFromZero) + "GB" + "\r\n";
textBox1.Text += "选择盘符:" + Math.Round((double)(drive.AvailableFreeSpace / 1024 / 1024 / 1024), 2, MidpointRounding.AwayFromZero)+ "GB" + "\r\n";
textBox1.Text += "文件系统:" + drive.DriveFormat + "\r\n";
}
else
{
textBox1.Text = "";
textBox1.Text += "选择盘符:" + drive.Name + "\r\n";
textBox1.Text += "不可用。";
}
}
//获得分区类型
private string getDriveType(DriveType drive_type)
{
switch (drive_type)
{
case DriveType.CDRom:
return "光驱";
case DriveType.Fixed:
return "固定磁盘";
case DriveType.Network:
return "网络设备";
default:
return "其他设备";
}
}
运行结果如下图所示:
图10-1 显示C盘的相关信息
学习更多vb.net知识,请参看vb.net 教程 目录
学习更多C#知识,请参看C#教程 目录