请问怎样获得驱动器的盘符? 请问怎样获得驱动器的盘符?请给出源代码 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 好象是 GetDriverGetDriverString你搜搜MSDN。 CString CMYApp::GetDriveStringT(){ CHAR SysDir[128]=_T(""); int strLen=0; CString strSysDir = ""; strLen=GetLogicalDriveStrings(sizeof(SysDir),SysDir); if(strLen!=0) { for(int i=0;i<strLen;i++) { if(SysDir[i]=='\0') SysDir[i]='+'; } } strSysDir.Format("%s",SysDir); if(strSysDir.Right(1) == "+") strSysDir = strSysDir.Left(strSysDir.GetLength() - 1); return strSysDir;}返回的值类似于这样:"A:\+C:\+D:\+E:\+F:\" //函数描述:函数名 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;} CStringArray oaDisk; int i; unsigned int type=3; //驱动器类型,3表硬盘 DWORD diskbyte=GetLogicalDrives(); CFileFind cfFind; if(diskbyte==0) { return "没有盘"; } char iCount='A'-1; while(diskbyte) { iCount++; if(GetDriveType(CString(iCount)+":\\")==type) oaDisk.Add(CString(iCount)+":\\"); diskbyte>>=1; }//执行完毕后,oaDisk中保存的就是所有驱动器的盘符 动态显示鼠标坐标 在类的源文件中的一个奇怪函数 我工程里的文件在编译过程中总是产生错误,打不开 sendto 10004怎么解决?(发送自己的IP包) 哪位大侠知道语音聊天程序的编写?200分相送 今年就业形势很烂 这一段程序有何用处,高分相送!!! 如何让在Win2000下开发的程序可以在Win98下运行? 数字的图形显示问题 OpenGL蓝宝典运行问题 谁有IMAP4的RFC中文资料 请问如何把最近打开过的文件列表加入到子菜单中?就象VC IDE那样
GetDriver
GetDriverString
你搜搜MSDN。
{
CHAR SysDir[128]=_T("");
int strLen=0;
CString strSysDir = "";
strLen=GetLogicalDriveStrings(sizeof(SysDir),SysDir);
if(strLen!=0)
{
for(int i=0;i<strLen;i++)
{
if(SysDir[i]=='\0')
SysDir[i]='+';
}
}
strSysDir.Format("%s",SysDir);
if(strSysDir.Right(1) == "+")
strSysDir = strSysDir.Left(strSysDir.GetLength() - 1);
return strSysDir;
}返回的值类似于这样:
"A:\+C:\+D:\+E:\+F:\"
//功能:取驱动器信息
//参数描述: 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;
}
int i;
unsigned int type=3; //驱动器类型,3表硬盘
DWORD diskbyte=GetLogicalDrives();
CFileFind cfFind;
if(diskbyte==0)
{
return "没有盘";
} char iCount='A'-1;
while(diskbyte)
{
iCount++;
if(GetDriveType(CString(iCount)+":\\")==type)
oaDisk.Add(CString(iCount)+":\\");
diskbyte>>=1;
}
//
执行完毕后,oaDisk中保存的就是所有驱动器的盘符