搜索

c语言如何得到磁盘分区名称

发布网友 发布时间:2022-03-01 08:39

我来回答

2个回答

热心网友 时间:2022-03-01 10:08

代码如下,VS2012亲测,可以运行,给你注释的很清楚了,不懂的地方可以问我。
#include <windows.h>
#include <stdio.h>

int main()
{

int DSLength = GetLogicalDriveStrings(0,NULL);

//通过GetLogicalDriveStrings()函数获取所有驱动器字符串信息长度。

char* DStr = new char[DSLength];//用获取的长度在堆区创建一个c风格的字符串数组

GetLogicalDriveStrings(DSLength,(LPTSTR)DStr);

//通过GetLogicalDriveStrings将字符串信息复制到堆区数组中,其中保存了所有驱动器的信息。

int DType;
int si=0;

for(int i=0;i<DSLength/4;++i)

//为了显示每个驱动器的状态,则通过循环输出实现,由于DStr内部保存的数据是A:\NULLB:\NULLC:\NULL,这样的信息,所以DSLength/4可以获得具体大循环范围

{

char dir[3]={DStr[si],':','\\'};

//cout<<dir;

DType = GetDriveType((LPCWSTR)DStr+i*4);

//GetDriveType函数,可以获取驱动器类型,参数为驱动器的根目录

if(DType == DRIVE_FIXED)

{
printf("%c",*dir);

printf("硬盘\n");

}
si+=4;

}
system("pause");//

return 1;
}

热心网友 时间:2022-03-01 11:26

标准C
#include <stdio.h>
#include <stdlib.h>
#define start setpath()
#define GetDisk getdisk//获取磁盘
#ifdef GetDisk(char diskname[])
#else
#define false 0
#endif
#define pause while(1)//程序暂停

/************计算磁盘并且返回磁盘盘符******************/
int getdisk(char diskname[]){
FILE *fp;
if(!(NULL==(fp=(fopen(diskname,"wb"))))){
fclose(fp);
return 1;
}
return 0;
}
/**************将枚举出所有的盘符*****************/
void start{
int i;
char c,disk[9]={':','/','a','.','d','a','t'};
disk[8]='\0';
for (i=7;i>=0;i--){
disk[i]=disk[i-1];
}
for (c='A';c<='Z';c++){
disk[0]=c;
if(1==GetDisk(disk)){
printf("%c盘\n",c);
}
}

}
void main(){
start;
pause;
}
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
Top