编程实现寻找硬盘分区

来源:百度知道 编辑:UC知道 时间:2024/05/20 08:09:34
当我们打开"我的电脑"的时候,我们就可以一目了然看到本机硬盘有多少分区,并且一下子就能知道哪些是硬盘的分区,哪些是光驱或软驱,或者是否有移动硬盘或U盘等.如果我们编写程序的时候,如何让程序对之也一目了然呢?或者我们调用系统工具或者其他方法也行,只要能让程序寻找到任何磁盘及分区.
我也知道,能会这个问题的人不多,请高手们花点时间指导我下.有会C语言的当然是最好了!
说明:本人要求程序以只读方式寻找磁盘及分区信息,不要低级的尝试写入磁盘方式或者尝试进入某分区.比如尝试在E盘创建某文件,如果创建成功,说明存在E盘,如果不成功,那就说明E盘不存在或不可写入(可能是软驱或光驱),或者调用CMD命令尝试进入E盘,这些方式不要!
如果会C语言的朋友,希望能写个程序,如果获取了磁盘信息后,比如当前本机有软驱A,硬盘C,D,E,F,光驱G,移动硬盘H,I,J.要求输出FDD:A DHH:CDEF CD:G MDD:HIJ
本人花300分(200分+100追加),花两小时在线等答案.谢谢各位朋友的热心帮助.
请没有这方面经验的朋友就不要发表留言了!爱护环境,人人有责!
请没有这方面经验的朋友就不要发表留言了!爱护环境,人人有责!
请没有这方面经验的朋友就不要发表留言了!爱护环境,人人有责!
请没有这方面经验的朋友就不要发表留言了!爱护环境,人人有责!
请没有这方面经验的朋友就不要发表留言了!爱护环境,人人有责!
请没有这方面经验的朋友就不要发表留言了!爱护环境,人人有责!
请各位朋友回答要详细,半懂不懂的也不要回答了,300分不是那么轻松拿到的.
唉,是我水平太菜,你们写的我只会用TC20编译器,其他都不会!
而且JullienSorel朋友写的TC20编译器有错误!

马甲吧~你~楼上那位

我用的GNU不能编译这个程序

所以没编译就拿过来

我不废话 有错就去改 没什么大不了的

可能是最初理解的不太好 lz只是想得到驱动器列表的话 参考
http://www.vckbase.com/document/viewdoc/?id=332

下面的代码比较老是实现读取分区信息的 需要改造 主要是bios.h的更新 其中_bios_disk()需要使用新的int biosdisk(int cmd,int driver,int head,int track,int sector,int nsets,void *buf)替换 我这里不能编译带有dos.h的c程序

还有追加结构体定义 其实是这个程序里的bios.h比较老 lz的应该比较新
struct diskinfo_t
{
unsigned drive, head, track, sector, nsectors;
/* void __far *buffer;*/
};

对应的bios.h参考
http://www.dreamincode.net/forums/showtopic20831.htm

能做的就这么多的

#include <stdio.h>
#include <dos.h>
#include <bios.h>

struct direct {
char name[10];
unsigned c