运用MFC在列表中显示电脑的驱动器信息

void CGetInfoDlg::GetDiskInfo()
{
    // TODO: 在此处添加实现代码.
    ULARGE_INTEGER freeSize, totalSize;
    TCHAR volumeName[MAX_PATH + 1] = { 0 };
    UINT driveType = 0;
    CString driveTypeName;
    for (TCHAR drive = _T('A'); drive <= _T('Z'); drive++)
    {
        
        CString rootPath;
        rootPath.Format(_T("%c:\\"), drive);
        driveType = ::GetDriveType(rootPath);
        switch (driveType)
        {
        case DRIVE_UNKNOWN:
            driveTypeName = _T("未知");
            break;
        case DRIVE_NO_ROOT_DIR:
            driveTypeName = _T("无根目录");
            break;
        case DRIVE_REMOVABLE:
            driveTypeName = _T("可移动磁盘");
            break;
        case DRIVE_FIXED:
            driveTypeName = _T("固定磁盘");
            break;
        case DRIVE_REMOTE:
            driveTypeName = _T("网络驱动器");
            break;
        case DRIVE_CDROM:
            driveTypeName = _T("CD/DVD-ROM");
            break;
        case DRIVE_RAMDISK:
            driveTypeName = _T("RAM 磁盘");
            break;
        default:
            driveTypeName = _T("未知");
        }
        if (GetDiskFreeSpaceEx(rootPath, &freeSize, &totalSize, NULL))
        {
            CString freeSpace;
            freeSpace.Format(_T("%lldKB"), freeSize.QuadPart / 1024);
            CString totalSpace;
            totalSpace.Format(_T("%lldKB"), totalSize.QuadPart / 1024);
            if (!GetVolumeInformation(rootPath, volumeName, MAX_PATH + 1, NULL, NULL, NULL, NULL, 0))
            {
                _tcscpy_s(volumeName, _T(""));
            }
            int index = m_diskList.InsertItem(m_diskList.GetItemCount(), rootPath);
            m_diskList.SetItemText(index, 1, driveTypeName);
            m_diskList.SetItemText(index, 2, volumeName);
            m_diskList.SetItemText(index, 3, totalSpace);
            m_diskList.SetItemText(index, 4, freeSpace);
        }
    }
}

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值