C#获取驱动器盘符

来源:互联网 发布:9月出口数据 编辑:程序博客网 时间:2024/06/06 03:49

 一、使用ManagementObjectSearcher类

        static void Main(string[] args)        {            SelectQuery selectQuery = new SelectQuery("select * from win32_logicaldisk");            ManagementObjectSearcher searcher = new ManagementObjectSearcher(selectQuery);            foreach (ManagementObject disk in searcher.Get())            {                //获取驱动器盘符                Console.WriteLine(disk["Name"].ToString());                //卷标                Console.WriteLine(disk["VolumeName"].ToString());                //驱动器类型                string DriveType = disk["DriveType"].ToString();                switch (DriveType)                {                    case "0":                        Console.WriteLine("未知设备");                        break;                    case "1":                        Console.WriteLine("未分区");                        break;                    case "2":                        Console.WriteLine("可移动磁盘");                        break;                    case "3":                        Console.WriteLine("硬盘");                        break;                    case "4":                        Console.WriteLine("网络驱动器");                        break;                    case "5":                        Console.WriteLine("光驱");                        break;                    case "6":                        Console.WriteLine("内存磁盘");                        break;                }                //容量                Console.WriteLine(GetSizeUseUnit(disk["Size"].ToString()));                //剩余空间                Console.WriteLine(GetSizeUseUnit(disk["FreeSpace"].ToString()));            }        }        public static string GetSizeUseUnit(string size)        {            double dSpace = Convert.ToDouble(size);            string sSpace = dSpace.ToString("N");            string[] tmp;            string rtnSize = "0";            tmp = sSpace.Split(',');            switch (tmp.GetUpperBound(0))            {                case 0:                    rtnSize = tmp[0] + " 字节";                    break;                case 1:                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " K";                    break;                case 2:                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " M";                    break;                case 3:                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " G";                    break;                case 4:                    rtnSize = tmp[0] + "." + tmp[1].Substring(0, 2) + " T";                    break;            }            return rtnSize;        }

二、使用DriveInfo类

        static void Main(string[] args)        {            DriveInfo[] allDrives = DriveInfo.GetDrives();            foreach (DriveInfo d in allDrives)            {                Console.WriteLine("Drive {0}", d.Name);                Console.WriteLine("  File type: {0}", d.DriveType);                if (d.IsReady == true)                {                    Console.WriteLine("  Volume label: {0}", d.VolumeLabel);                    Console.WriteLine("  File system: {0}", d.DriveFormat);                    Console.WriteLine(                        "  Available space to current user:{0, 15} bytes",                        d.AvailableFreeSpace);                    Console.WriteLine(                        "  Total available space:          {0, 15} bytes",                        d.TotalFreeSpace);                    Console.WriteLine(                        "  Total size of drive:            {0, 15} bytes ",                        d.TotalSize);                }            }        }

三、使用Environment类,调用kernel32API获取驱动类型

        [DllImport("kernel32")]        public static extern uint GetDriveType(string lpRootPathName);        static void Main(string[] args)        {            string[] drives = Environment.GetLogicalDrives();            foreach (string drive in drives)            {                //Determine icon to display by drive                switch (GetDriveType(drive))                {                    case 2:                        Console.WriteLine("软盘");                        break;                    case 3:                        Console.WriteLine("硬盘");                        break;                    case 4:                        Console.WriteLine("网络驱动器");                        break;                    case 5:                        Console.WriteLine("光驱驱动器");                        break;                    default:                        Console.WriteLine("");                        break;                }            }        }




 

原创粉丝点击