可能是重复问题:
如何列出物理硬盘?
有没有最快的C++方法来列出计算机上已安装的物理驱动器?是否有使用boost库的方法可以实现?
使用 GetLogicalDriveStrings()
函数来获取所有可用的逻辑驱动器。
#include <windows.h>
#include <stdio.h>
DWORD mydrives = 100;// buffer length
char lpBuffer[100];// buffer for drive string storage
int main()
{
DWORD test = GetLogicalDriveStrings( mydrives, lpBuffer);
printf("The logical drives of this machine are:\n\n");
for(int i = 0; i<100; i++) printf("%c", lpBuffer[i]);
printf("\n");
return 0;
}
或者使用GetLogicalDrives()
#include <windows.h>
#include <direct.h>
#include <stdio.h>
#include <tchar.h>
// initial value
TCHAR szDrive[ ] = _T(" A:");
int main()
{
DWORD uDriveMask = GetLogicalDrives();
printf("The bitmask of the logical drives in hex: %0X\n", uDriveMask);
printf("The bitmask of the logical drives in decimal: %d\n", uDriveMask);
if(uDriveMask == 0)
printf("\nGetLogicalDrives() failed with failure code: %d\n", GetLastError());
else
{
printf("\nThis machine has the following logical drives:\n");
while(uDriveMask)
{// use the bitwise AND, 1–available, 0-not available
if(uDriveMask & 1)
printf("%s\n",szDrive);
// increment...
++szDrive[1];
// shift the bitmask binary right
uDriveMask >>= 1;
}
printf("\n ");
}
return 0;
}
GetLogicalDrives()
函数,查看这篇文章:https://dev59.com/A3VC5IYBdhLWcg3wdw65。 - Cyclonecode