• C# 获取磁盘空间大小的方法


    方法一:利用System.IO.DriveInfo.GetDrives方法来获取

    ///   
            /// 获取指定驱动器的空间总大小(单位为B) 
            ///   
            ///  只需输入代表驱动器的字母即可 (大写) 
            ///    
            public static long GetHardDiskSpace(string str_HardDiskName) 
            { 
                long totalSize= new long(); 
                str_HardDiskName=str_HardDiskName +":\"; 
                System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); 
                foreach (System.IO.DriveInfo drive in drives) 
                { 
                    if (drive.Name == str_HardDiskName) 
                    {
                        totalSize = drive.TotalSize / (1024 * 1024 * 1024); 
                    } 
                } 
                return totalSize; 
            }
    
            ///   
            /// 获取指定驱动器的剩余空间总大小(单位为B) 
            ///   
            ///  只需输入代表驱动器的字母即可  
            ///    
            public static long GetHardDiskFreeSpace(string str_HardDiskName) 
            { 
                long freeSpace = new long(); 
                str_HardDiskName = str_HardDiskName + ":\"; 
                System.IO.DriveInfo[] drives = System.IO.DriveInfo.GetDrives(); 
                foreach (System.IO.DriveInfo drive in drives) 
                { 
                    if (drive.Name == str_HardDiskName) 
                    {
                        freeSpace = drive.TotalFreeSpace / (1024 * 1024 * 1024); 
                    } 
                } 
                return freeSpace; 
            }
    

    方法二:利用ManagementClass("Win32_LogicalDisk")来获取

    List<Dictionary<string, string>> diskInfoDic = new List<Dictionary<string, string>>();
    ManagementClass diskClass = new ManagementClass("Win32_LogicalDisk");
    			ManagementObjectCollection disks = diskClass.GetInstances();
    			foreach(ManagementObject disk in disks)
    			{
    				Dictionary<string, string> diskInfo = new Dictionary<string, string>();
    				try
    				{
    					// 磁盘名称
    					diskInfo["Name"] =disk["Name"].ToString();
    					// 磁盘描述
    					diskInfo["Description"]=disk["Description"].ToString();
    					// 磁盘总容量,可用空间,已用空间
    					if (System.Convert.ToInt64(disk["Size"]) > 0)
    					{
    						long totalSpace = System.Convert.ToInt64(disk["Size"]) / MB;
    						long freeSpace = System.Convert.ToInt64(disk["FreeSpace"]) / MB;
    						long usedSpace = totalSpace - freeSpace;
                            			diskInfo["totalSpace"]=totalSpace.ToString();
    						diskInfo["usedSpace"]=usedSpace.ToString();
    						diskInfo["freeSpace"]=freeSpace.ToString();
    					}
    					diskInfoDic.Add(diskInfo);
    				}
    				catch(Exception ex)
    				{
    					Throw ex;
    				}
    			}
    

    更多IT相关资讯与技术文章,欢迎光临我的个人网站:http://www.zuowenjun.cn/

  • 相关阅读:
    文字无缝滚动效果,鼠标移入时暂停
    Spring中使用@Autowired注解静态实例对象
    服务器环境搭建
    nexus问题
    useUnicode=true&characterEncoding=UTF-8 的作用
    SpringBoot项目启动时自动执行指定方法
    springboot自定义消息转换器HttpMessageConverter
    kubernetes资源类别介绍
    红黑树与平衡二叉树的比较
    Feign Client的超时时间
  • 原文地址:https://www.cnblogs.com/zuowj/p/4173457.html
Copyright © 2020-2023  润新知