QQ登录

只需一步,快速开始

上位机MFC如何获得驱动器的类型

[ 复制链接 ]
可以参考下面代码。IDC_LIST为自己添加的列表控件ID,用于显示结果。函数GetLogicalDrives可获得当前电脑上的驱动器,GetDriveType为获得指定驱动器类型。



  1. void CDemoDlg::OnTest()
  2. {
  3.         CListCtrl* pList = (CListCtrl*)GetDlgItem(IDC_LIST);
  4.         pList->DeleteAllItems();

  5.         //获得驱动器位掩码
  6.         DWORD dwBitMask = ::GetLogicalDrives();
  7.         if (dwBitMask != 0)
  8.         {
  9.                 int n = 0;

  10.                 TCHAR ch = 'A';

  11.                 while (dwBitMask > 0)
  12.                 {
  13.                         if (dwBitMask % 2 == 1)
  14.                         {
  15.                                 //驱动器名
  16.                                 CString strDiriveName = _T("");
  17.                                 strDiriveName.Format(_T("%c:\"), ch);
  18.                                 pList->InsertItem(n, strDiriveName);

  19.                                 //获得驱动器类型
  20.                                 UINT nDriveType = GetDriveType(strDiriveName);
  21.                                 CString strDiriveType = _T("");
  22.                                 if (nDriveType == DRIVE_UNKNOWN)
  23.                                 {
  24.                                         strDiriveType = _T("未知");
  25.                                 }
  26.                                 else if (nDriveType == DRIVE_NO_ROOT_DIR)
  27.                                 {
  28.                                         strDiriveType = _T("无效路径");
  29.                                 }
  30.                                 else if (nDriveType == DRIVE_REMOVABLE)
  31.                                 {
  32.                                         strDiriveType = _T("可移动驱动器");
  33.                                 }
  34.                                 else if (nDriveType == DRIVE_FIXED)
  35.                                 {
  36.                                         strDiriveType = _T("固定驱动器");
  37.                                 }
  38.                                 else if (nDriveType == DRIVE_REMOTE)
  39.                                 {
  40.                                         strDiriveType = _T("远程(网络)驱动器");
  41.                                 }
  42.                                 else if (nDriveType == DRIVE_CDROM)
  43.                                 {
  44.                                         strDiriveType = _T("CDROM驱动器");
  45.                                 }
  46.                                 else if (nDriveType == DRIVE_RAMDISK)
  47.                                 {
  48.                                         strDiriveType = _T("RAM磁盘");
  49.                                 }
  50.                                 pList->SetItemText(n, 1, strDiriveType);

  51.                                 n++;
  52.                         }

  53.                         dwBitMask /= 2;

  54.                         ch++;
  55.                 }
  56.         }
  57. }
复制代码



回复

使用道具 举报

快速回复 返回列表 客服中心 搜索