C/C++ 获取当前所有逻辑驱动器的根驱动器路径

#include<stdio.h>
#include<windows.h>

int main()
{
	char str[100];
	int szAllDriveStrings=GetLogicalDriveStrings(0,NULL);       //获取电脑所有盘符的长度
	char *pDriveStrings=new CHAR[szAllDriveStrings+sizeof((" "))]; //建立缓冲区,准备存放所有的盘符
	GetLogicalDriveStrings(szAllDriveStrings,pDriveStrings);		//把所有的盘符放到缓冲区pDriveStrings里
	int szDriveString=::strlen(pDriveStrings);		//获取一个磁盘的字数,每个名字都用一个NULL字符分隔,例如l>A:\<null>C:\<null>
	printf(itoa(szDriveString,str,10)); //strlen 遇到第一个字符串结束符'\0'为止,例如A:\<null>C:\<null><nul,所以输出3;
	printf("\r\n");

	while(szDriveString>0)    //判断计数器是否>0,不大于0就说明无磁盘驱动器
	{
		printf(pDriveStrings);           //输出盘符
		printf("\r\n");
		pDriveStrings+=szDriveString+1;   //上一个盘符 + 一个磁盘计数器(3) + 一个'\0'(1) = 等于下一个磁盘的地址
		szDriveString=::strlen(pDriveStrings);  
	}
	
	return 0;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值