首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何利用.NET使用C#实现PC机的所有驱动

如何利用.NET使用C#实现PC机的所有驱动
EN

Stack Overflow用户
提问于 2011-03-04 15:24:09
回答 9查看 18K关注 0票数 9

如何把所有的驱动器都放在个人电脑里。以及每个驱动器的类型和每个驱动器的空闲空间

即系统-驱动器,CD-驱动器,DVD-驱动器,可移动,.等。

如果系统与新驱动器连接,则可以是、笔式驱动器或外部硬盘

如何在附件中检测到它们?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2011-03-04 15:26:50

要获得驱动器的列表,可以使用System.IO.DriveInfo类:

代码语言:javascript
复制
foreach(var drive in DriveInfo.GetDrives())
{
    Console.WriteLine("Drive Type: {0}", drive.DriveType);
    Console.WriteLine("Drive Size: {0}", drive.TotalSize);
    Console.WriteLine("Drive Free Space: {0}", drive.TotalFreeSpace);
}

不幸的是,这并没有提供监听USB键插入的方法。还有一个问题是你可以查看的:

.NET -检测USB驱动器插入和删除.

票数 14
EN

Stack Overflow用户

发布于 2013-03-08 21:29:16

代码语言:javascript
复制
        public string getalldrivestotalnfreespace()
    {
        string s = "    Drive          Free Space   TotalSpace     FileSystem    %Free Space       DriveType\n\r========================================================================================\n\r";
        foreach (DriveInfo drive in DriveInfo.GetDrives())
        {
            double ts = 0;
            double fs = 0;
            double frprcntg = 0;
            long divts = 1024 * 1024 * 1024;
            long divfs = 1024 * 1024 * 1024;
            string tsunit = "GB";
            string fsunit = "GB";
            if (drive.IsReady)
            {
                fs = drive.TotalFreeSpace;
                ts = drive.TotalSize;
                frprcntg = (fs / ts) * 100;
                if (drive.TotalSize < 1024)
                {
                    divts =1; tsunit = "Byte(s)";
                }
                else if (drive.TotalSize < (1024*1024))
                {
                    divts = 1024; tsunit = "KB";
                }
                else if (drive.TotalSize < (1024 * 1024*1024))
                {
                    divts = 1024*1024; tsunit = "MB";
                }
                //----------------------
                if (drive.TotalFreeSpace < 1024)
                {
                    divfs = 1; fsunit = "Byte(s)";
                }
                else if (drive.TotalFreeSpace < (1024 * 1024))
                {
                    divfs = 1024; fsunit = "KB";
                }
                else if (drive.TotalFreeSpace < (1024 * 1024 * 1024))
                {
                    divfs = 1024 * 1024; fsunit = "MB";
                }
                s = s +
                " " + drive.VolumeLabel.ToString() +
                "[" + drive.Name.Substring(0, 2) +
                "]\t" + String.Format("{0,10:0.0}", ((fs / divfs)).ToString("N2")) + fsunit +
                String.Format("{0,10:0.0}", (ts / divts).ToString("N2")) + tsunit +
                "\t" + drive.DriveFormat.ToString() + "\t\t" + frprcntg.ToString("N2") + "%"+
                "\t\t" + drive.DriveType.ToString();

                s = s + "\n\r";
            }
        }
        return s;
    }

输出应该看起来像:-

票数 3
EN

Stack Overflow用户

发布于 2011-03-04 15:26:29

代码语言:javascript
复制
Environment.GetLogicalDrives();

MSDN链路

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5195653

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档