首页 > 技术文章 > 判断当前盘符是否存在

2018shawn 2018-10-25 11:42 原文

 判断当前盘符是否存在

BOOL CheckDiskExist(LPCTSTR lpDisk)
{
    TCHAR szDrvMsg[] = "A:";
    ULONG uDriveMask = _getdrives();
    if(uDriveMask != 0)
    {
         while (uDriveMask) 
         {
              if (uDriveMask & 1)
              {
                   if (memicmp(szDrvMsg, lpDisk, 1) == 0)
                   {
                         return TRUE;
                   }
               }
           ++szDrvMsg[0];
           uDriveMask >>= 1;
          }
    }
    return FALSE;
}

 改进版:

BOOL CheckDiskExist(LPCTSTR lpDisk)
{

    ULONG uDriveMask = _getdrives();
     if(uDriveMask == 0)
     {
         return FALSE;
     }
     
     uDriveMask >>= (int)(lpDisk[0]-'A');
     if(uDriveMask & 1)
     {
         return TRUE;
     }
     return FALSE;
}

 

推荐阅读