[请教]如何获取硬盘分区信息 程序中我想获取硬盘分区信息,并获得相应的几个盘符,但是我在msdn里面查找GetSys开头的api函数,好像没有实现这个功能的,有没有大虾知道应该怎么实现?谢过了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 //////////////////// int nPos = 0; UINT nCount = 0; CString strDrive = "?:"; DWORD dwDriveList = ::GetLogicalDrives (); CString cTmp; while (dwDriveList) { if (dwDriveList & 1) { strDrive.SetAt (0, 0x41 + nPos); UINT nType = ::GetDriveType ((LPCTSTR) strDrive); switch (nType) { case DRIVE_REMOVABLE: cTmp="DRIVE_REMOVABLE"; break; case DRIVE_FIXED: cTmp="DRIVE_FIXED"; break; case DRIVE_REMOTE: cTmp="DRIVE_REMOTE"; break; case DRIVE_CDROM: cTmp="DRIVE_CDROM"; break; case DRIVE_RAMDISK: cTmp="DRIVE_RAMDISK"; break; default: cTmp="UNKNOWN_DISK"; break; } BOOL ret=GetDiskFreeSpaceEx(strDrive,&DiskSpaceInfo.FreeBytesAvaiable, \ &DiskSpaceInfo.TotalBytes, \ &DiskSpaceInfo.FreeBytes); if(ret==TRUE) { l_FreeSpace=DiskSpaceInfo.FreeBytes.QuadPart/1048576; l_UsedSpace=(DiskSpaceInfo.TotalBytes.QuadPart-DiskSpaceInfo.FreeBytes.QuadPart)/1048576; l_TotalSpace=DiskSpaceInfo.TotalBytes.QuadPart/1048576; } else { l_FreeSpace=l_UsedSpace=l_TotalSpace=0; } sprintf(logbuff,"%s %s Free Space %dMB,Used Space %dMB,Total Space %dMB\n",strDrive, cTmp, \ (DWORD)l_FreeSpace, \ (DWORD)l_UsedSpace, \ (DWORD)l_TotalSpace); fprintf(pLog,logbuff); nCount++; } dwDriveList >>= 1; nPos++; } 有偿求c++ Dll 封装为ActiveX 内存地址莫名奇妙改变的问题 请问,这个INSERT INTO语句应该怎么写? 为什么我在查询分析器下可以,而在VC中会出现这样的错误呢? 想问问同步类和同步访问类是什么关系? 如何向safearray放入BSTR类型的数据 新手学mfc,散分 对话框的知识点 誰能幫我選款精英主板,謝謝。。 向指定窗口发送鼠标点击消息,指定窗口获得输入焦点,如何不要这个焦点呢 sos vc自动缩进失效了 (请教)一个关于与驱动程序通信的问题
int nPos = 0;
UINT nCount = 0;
CString strDrive = "?:";
DWORD dwDriveList = ::GetLogicalDrives ();
CString cTmp;
while (dwDriveList)
{
if (dwDriveList & 1)
{
strDrive.SetAt (0, 0x41 + nPos);
UINT nType = ::GetDriveType ((LPCTSTR) strDrive);
switch (nType)
{
case DRIVE_REMOVABLE: cTmp="DRIVE_REMOVABLE";
break;
case DRIVE_FIXED: cTmp="DRIVE_FIXED";
break;
case DRIVE_REMOTE: cTmp="DRIVE_REMOTE";
break;
case DRIVE_CDROM: cTmp="DRIVE_CDROM";
break;
case DRIVE_RAMDISK: cTmp="DRIVE_RAMDISK";
break;
default: cTmp="UNKNOWN_DISK";
break;
}
BOOL ret=GetDiskFreeSpaceEx(strDrive,&DiskSpaceInfo.FreeBytesAvaiable, \
&DiskSpaceInfo.TotalBytes, \
&DiskSpaceInfo.FreeBytes);
if(ret==TRUE)
{
l_FreeSpace=DiskSpaceInfo.FreeBytes.QuadPart/1048576;
l_UsedSpace=(DiskSpaceInfo.TotalBytes.QuadPart-DiskSpaceInfo.FreeBytes.QuadPart)/1048576;
l_TotalSpace=DiskSpaceInfo.TotalBytes.QuadPart/1048576;
}
else
{
l_FreeSpace=l_UsedSpace=l_TotalSpace=0;
}
sprintf(logbuff,"%s %s Free Space %dMB,Used Space %dMB,Total Space %dMB\n",strDrive, cTmp, \
(DWORD)l_FreeSpace, \
(DWORD)l_UsedSpace, \
(DWORD)l_TotalSpace);
fprintf(pLog,logbuff);
nCount++;
}
dwDriveList >>= 1;
nPos++;
}