C#获取磁盘空间信息的几个方法

原创 2012年03月23日 16:29:07

    今天本来想找一个在磁盘拷贝的过程中快速获取磁盘大小信息的方法,可惜这几个方法都不给力,拷贝中获取信息依然很慢。纠结。
1、C#DriveInfo类获取

DriveInfo driveinfo = new DriveInfo(@"C:\");
driveinfo.AvailableFreeSpace;
driveinfo.TotalSize;

2、调用系统DLL方法

        [DllImport("kernel32.dll")]

        public static extern bool GetDiskFreeSpaceEx(

                string lpDirectoryName,

                out UInt64 lpFreeBytesAvailable,

                out UInt64 lpTotalNumberOfBytes,

                out UInt64 lpTotalNumberOfFreeBytes);

调用

        public static void GetDriveInfoDetail(string driveName)
        {
            ulong availablefreeBytes = 0;

            ulong totalNumberOfBytes = 0;

            ulong totalNumberOfFreeBytes = 0;

            GetDiskFreeSpaceEx(

                driveName,

                out availablefreeBytes,

                out totalNumberOfBytes,

                out totalNumberOfFreeBytes);
        }

3、ManagementObjectSearcher查询方法

        public static void GetDriveInfoDetail(string driveName)
        {
            WqlObjectQuery wqlObjectQuery = new WqlObjectQuery(string.Format("SELECT * FROM Win32_LogicalDisk WHERE DeviceID = '{0}'", driveName.Substring(0, 2)));

            ManagementObjectSearcher managerSearch = new ManagementObjectSearcher(wqlObjectQuery);

            List<ulong> driveInfoList = new List<ulong>(2);

            foreach (ManagementObject mobj in managerSearch.Get())
            {
                Console.WriteLine("Description: " + mobj["Description"]);

                Console.WriteLine("File system: " + mobj["FileSystem"]);

                Console.WriteLine("Free disk space: " + mobj["FreeSpace"]);

                Console.WriteLine("Size: " + mobj["Size"]);
            }
        }

代码下载:http://download.csdn.net/detail/yysyangyangyangshan/4166834

 

版权声明:本文为博主原创文章,未经博主允许不得转载。

C# 先检测出指定磁盘的容量,然后根据已使用情况动态生成圆饼图表,就像Windows磁盘属性内的图表一样,直观简洁。你知道用C#如何生成类似图表吗?你会从本示例程序中得到答案。

  • 2010年09月16日 11:30
  • 14KB
  • 下载

C# 获取磁盘空间信息

获取磁盘剩余空间,取远程服务器磁盘空间
  • lqh4188
  • lqh4188
  • 2015年10月21日 09:55
  • 2443

C# DriveInfo 读取驱动器出现的错误提示排除方法,原来超幼稚!

测试代码:using System;using System.Collections.Generic;using System.Text;using System.IO;namespace Drive...
  • smalltt
  • smalltt
  • 2008年12月05日 00:27
  • 2015

DriveInfo类查看磁盘信息

DriveInfo 类查看磁盘信息   DriveInfo di = new DriveInfo(@"d:\");  this.Label1.Text = di.Name; // 获取磁盘名...
  • nodeman
  • nodeman
  • 2015年07月28日 11:24
  • 356

2010-2012迷你博客

XiaJing: MySQLdb.escape_string(...) escape_string(s) -- quote any SQL-interpreted characters in stri...
  • xiajing20060721
  • xiajing20060721
  • 2012年02月17日 13:16
  • 50845

获取磁盘空间信息(十四)

  获取磁盘空间信息(十四)本文讲述如何获取磁盘信息。1.      创建一个对话框工程:DiskSpace2.      添加一个List Control控件,用来显示信息。3.      添加一个...
  • zhangyuanlovelife
  • zhangyuanlovelife
  • 2008年03月01日 09:41
  • 1328

MFC--获取磁盘信息

::GetLogicDrives()---返回DWORD dwDRivesList---while(dwDrivesList){      if(dwDRivesList & 1)     {    ...
  • jjjjyyyyy
  • jjjjyyyyy
  • 2007年05月01日 17:45
  • 743

TSQL方法获取服务器磁盘空间信息

日常运维中, 无需登录服务器Windows, 用TSQL方法即可获取服务器磁盘空间信息. create table dbo.DBA_ServerDiskSpaceDetail (LogID int ...
  • ap0405140
  • ap0405140
  • 2015年12月09日 10:19
  • 446

磁盘空间信息

void GetDriveSpaceInfo() { DWORD dwNum;//实际存储驱动器号的字符串长度 HANDLE hHeap; LPSTR lp;//存放盘符 //获得实际...
  • suiyuan1767
  • suiyuan1767
  • 2011年08月23日 16:02
  • 120

c# 获取逻辑磁盘信息

private void button1_Click(object sender, EventArgs e)         {             SelectQuery sq = new ...
  • jiayp004
  • jiayp004
  • 2016年01月15日 10:59
  • 674
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:C#获取磁盘空间信息的几个方法
举报原因:
原因补充:

(最多只允许输入30个字)