#include "stdafx.h"
#include
int main()
{
TCHAR buf[MAX_PATH] = {};
int nDriveType;
//1 获取磁盘盘符
GetLogicalDriveStrings(MAX_PATH, buf);
TCHAR* pDrives = buf;
while (*pDrives != 0) {
//2 打印盘符
_tprintf(pDrives);
//3 获取盘符信息
nDriveType = GetDriveType(pDrives);
switch (nDriveType) {
case DRIVE_UNKNOWN : printf(" 未知"); break;
case DRIVE_NO_ROOT_DIR : printf(" 不是根目录"); break;
case DRIVE_REMOVABLE : printf(" 我是U盘或者移动硬盘"); break;
case DRIVE_FIXED : printf(" 我是硬盘"); break;
case DRIVE_REMOTE : printf(" 网络磁盘"); break;
case DRIVE_CDROM : printf(" 我是光U盘"); break;
case DRIVE_RAMDISK : break;
default:
break;
}
//3 根据盘符名获取磁盘容量
DWORD 每簇扇区数 = 0;
DWORD 扇区容量 = 0;
DWORD 空闲簇 = 0;
DWORD 所有簇 = 0;
GetDiskFreeSpace(pDrives, &每簇扇区数, &扇区容量, &空闲簇, &所有簇);
printf(" 磁盘容量%.2f",
(所有簇 / 1024.0)*每簇扇区数*扇区容量 / 1024 / 1024);
printf(" 空闲容量%.2f",
(空闲簇 / 1024.0)*每簇扇区数*扇区容量 / 1024 / 1024);
_tprintf(_T("
"));
pDrives += wcslen(pDrives)+1;
}
return 0;
}