这是一个vc的程序, 但是是用api写的,//函数描述:函数名 Fresource_driveinfo
//功能:取驱动器信息
//参数描述: driveInfo存放取得的驱动器统计信息数组,
// length为数组实际存放项的
//返回值描述:返回值1表示正常,-1表示出错
short Fresource_driveinfo( Fdrive_info driveInfo[MAX1],int& length )
{
Fdrive_info DriveInfo;
memset( &DriveInfo, 0, sizeof( Fdrive_info ) );
DWORD dwBuffer=256;
char szBuffer[256];
memset( szBuffer, 0, dwBuffer );
int nSize = GetLogicalDriveStrings( dwBuffer, szBuffer );
if( nSize == 0 )
{
return -1;
} char szDrivers[32][5];
memset( szDrivers, 0, 160 );
char szTemp[4];
memset( szTemp, 0, 4 );
int j=0;
int nLength=0;   // 有几个盘符
for( int i=0; i<nSize; i++ )
{
if( szBuffer[i] == '\0' )
{
szTemp[j]='\0';
strcpy( szDrivers[nLength], szTemp ); UINT nDriver = GetDriveType( szDrivers[nLength] ); 
// 得到驱动器的信息
switch( nDriver )
{
case DRIVE_REMOVABLE:  // 是否是软驱
break;
case DRIVE_CDROM:
break;
case DRIVE_FIXED:
strcpy( DriveInfo.drive_type, "硬盘" );
strcat( DriveInfo.drive_type, "DRIVE_FIXED" ); //GetVolumeInformation();
//DriveInfo.Partitiontype = ;
//strcpy( DriveInfo.drive_id, szDrivers[nLength] );
//DriveInfo.drive_size = ;
//GetDiskFreeSpace( szDrivers );
break; case DRIVE_REMOTE:
break;
case DRIVE_RAMDISK:
break;
}
nLength++;
j=0;
continue;
}
szTemp[j]=szBuffer[i];
j++;
} length = nLength;
return 1;
}