当前位置: 首页 > article >正文

10.1 DriveInfo类获取磁盘分区信息

版权声明:本文为博主原创文章,转载请在显著位置标明本文出处以及作者网名,未经作者允许不得用于商业目的。

DriveInfo类提供磁盘分区信息。

DriveInfo常用属性:

  1. Name:驱动器的名称,如 C:\。
  2. DriveFormat:磁盘分区文件系统的名称,例如 NTFS、FAT32等。
  3. DriveType:驱动器类型,包括CDRom(光驱),Fixed(固定磁盘),Network(网络设备),NoRootDirectory(没有根目录),Ram(随机存取存储器),Removable(可移动设备),或Unknown(未知设备)。

注意:移动硬盘会识别为Fixed,优盘识别为Removable。

  1. IsReady:指示分区是否已准备就绪可以读写。
  2. VolumeLabel:驱动器的卷标。
  3. RootDirectory:驱动器的根目录。
  4. TotalSize:存储空间的总大小(以字节为单位)。
  5. TotalFreeSpace:可用空闲空间总量(以字节为单位)。
  6. AvailableFreeSpace:可用空闲空间总量(以字节为单位)。

    注意:AvailableFreeSpace不同于TotalFreeSpace,AvailableFreeSpace是当前账号的可用的空闲磁盘配额。

DriveInfo重要方法:

  1. 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#教程 目录


http://www.kler.cn/a/524897.html

相关文章:

  • MyBatis 框架:简化 Java 数据持久化的利器
  • 自创《艺术人生》浅析
  • 机器学习(三)
  • 2023年吉林省职业院校技能大赛网络系统管理样题-网络配置(华三代码)
  • 【论文投稿-第八届智能制造与自动化学术会议(IMA 2025)】HTML, CSS, JavaScript:三者的联系与区别
  • 编程语言中的常见Bug及解决方案
  • 011-mac自带vnc
  • leetcode——二叉树的最大深度(java)
  • Selenium 浏览器操作与使用技巧——详细解析(Java版)
  • 8. 网络编程
  • 鸢尾花书01---基本介绍和Jupyterlab的上手
  • 杨立昆退休?中国Deepseek超Llama 4触发Meta
  • 单片机基础模块学习——超声波传感器
  • Python的那些事第五篇:数据结构的艺术与应用
  • 【redis】redis操作zset类型的key发生了什么?
  • 企业知识管理平台助力企业创新与竞争力提升的有效策略探讨
  • 网关登录校验
  • Qwen2.5-max 性能
  • JAVA实战开源项目:网上超市系统(Vue+SpringBoot) 附源码
  • 蓝桥备赛指南(5)
  • TCP 握手数据包分析
  • 「AI学习笔记」深度学习的起源与发展:从神经网络到大数据(二)
  • 【自学笔记】计算机网络的重点知识点-持续更新
  • 格式化时间的插件
  • SET alter system reload
  • 如何看待 OpenAI 的12天“shipmas”发布计划?