SDK获取磁盘信息

/*获取磁盘的空闲信息*/

/*头文件*/
#include <windows.h>
#include <stdio.h>

/******************************
// BOOL GetDiskSPaceInfo ( LPCSTR pszDrive )
//功能 : 根据输入的驱动器,获取磁盘的总容量、
//        空闲空间、簇数量等磁盘信息
//参数 : 驱动器根路径,比如D:\
*******************************/
BOOL GetDiskSpaceInfo (LPCSTR pszDrive )
{
 DWORD64 dwFreeBytesToCaller,  //总空闲簇数
   dwTotalBytes,         //总字节数
   dwFreeBytes;          //空闲字节数

 DWORD dwSectPerClust,         //扇区数
       dwBytesPerSect,        //每扇区的字节数
    dwFreeClusters,         //空闲簇数
    dwTotalClusters;        //总的簇数
 BOOL bResult;

 //使用 GetDiskFreeSpaceEx //获取磁盘信息并打印结果
 bResult = GetDiskFreeSpaceEx (pszDrive,
  (PULARGE_INTEGER) & dwFreeBytesToCaller,
  (PULARGE_INTEGER) & dwTotalBytes,
  (PULARGE_INTEGER) & dwFreeBytes);
 if(bResult)
 {
  printf("使用GetDiskFreeSpaceExcellent获取磁盘空闲信息\n");
  printf("可获得的空闲空间(字节):\t%I64d\n",dwFreeBytesToCaller);
  printf("空闲空间(字节):\t\t%I64d\n",dwFreeBytes);
  printf("磁盘总容量(字节):\t%I64d\n",dwTotalBytes);
 }

 //使用GetDiskFreeSpace 获取磁盘信息并打印结果
    bResult = GetDiskFreeSpace (pszDrive,
  &dwSectPerClust,
  &dwBytesPerSect,
  &dwFreeClusters,
  &dwTotalClusters);
 if(bResult)
 {
  printf("\n使用GetDiskFreeSpaceEx获取磁盘空闲信息\n");
  printf("空闲的簇数量:\t\t%d\n",dwFreeClusters);
  printf("总簇数量:\t\t%d\n",dwTotalClusters);
  printf("每簇的扇区数量:\t\t%d\n",dwSectPerClust);
  printf("每扇区的容量(字节):\t%I64d\n",dwBytesPerSect);

  //空闲簇数 * 空闲扇区数量 * 每扇区的字节数 = 空闲空间
  printf("空闲空间(字节):\t\t%I64d\n",(DWORD64) dwFreeClusters *
                                   (DWORD64) dwSectPerClust *
           (DWORD64) dwBytesPerSect);

  //总簇数 * 总扇区数量 * 每扇区的字节数 = 总容量
  printf("磁盘总容量(字节):\t%I64d\n",(DWORD64) dwTotalClusters *
                                     (DWORD64) dwSectPerClust *
             (DWORD64) dwBytesPerSect);
 }
 return bResult;
}


/********************************************
// int main(int agrc, PCHAR agrv[])
// 功能: 应用程序主函数,根据输入参数
//       调用 GetDiskFreeSpaceInfo 函数获取
//       磁盘空闲信息
// 参数: 驱动器根路径 ,比如 “D:\”
********************************************/

int main(int argc, PCHAR argv[])
{
 //直接运行的结果是C盘的信息
 //DOS 环境下输入启动根路径
 GetDiskSpaceInfo (argv[1]);
 return 0;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值