|
kaixin11
初级用户
积分 122
发帖 5
注册 2005-2-18
状态 离线
|
『楼 主』:
如何编程获取大硬盘的剩余空间
各位大侠:
请问如何在DOS环境下编程实现获取硬盘的剩余空间,在整个分区大小小于2G的情况下我已实现,但不知道如何处理现在流行的大硬盘,请各位高手不吝指教。
多谢!
|
|
2005-2-18 00:00 |
|
|
crshen
中级用户
积分 447
发帖 126
注册 2004-2-10
状态 离线
|
『第
2 楼』:
不知道你用什么语言另外能不能说一下你用什么方法实现小分区中获取剩余空间
|
从来不用别人的东西,要用,也先改成自己的再说! |
|
2005-2-18 00:00 |
|
|
JonePeng
金牌会员
D◎$ Fαп
积分 4562
发帖 1883
注册 2004-1-19 来自 广东广州
状态 离线
|
『第
3 楼』:
用int 21H的36H子功能可以获取剩余空间。输入值:AX=36H,DL=驱动器号(A=1,B=2,C=3……)返回值:AX=每簇扇区数,BX=剩余簇数,CX=每扇区字节数。剩余容量=AX*BX*CX
|
----====≡≡≡≡ 我的至爱,永远是MSDOS!≡≡≡≡====----
|
|
2005-2-19 00:00 |
|
|
crshen
中级用户
积分 447
发帖 126
注册 2004-2-10
状态 离线
|
『第
4 楼』:
AX*BX*CX,这种方法不行,CX为0x200,BX最大0xFFFF,AX为簇,常为8/16/32扇区等,限制为2G,可能就是kaixin11的方法。
|
从来不用别人的东西,要用,也先改成自己的再说! |
|
2005-2-19 00:00 |
|
|
qb45
高级用户
积分 677
发帖 194
注册 2003-9-13
状态 离线
|
|
2005-2-20 00:00 |
|
|
kaixin11
初级用户
积分 122
发帖 5
注册 2005-2-18
状态 离线
|
『第
6 楼』:
呵呵,我用的是c语言,最开始的时候调用bc++的函数,在小硬盘的时候可以,后来用int 21h的功能36h,但受2G限制,现在用WATCOM C++,看资料说还是用int 21h的功能36h,返回数值放在eax,ebx,ecx,edx中,试了一下,还是不行。qb45说的方法还没试过,我会试试看。呵呵现在用了个笨办法,用dir命令将磁盘信息写到文本文件中,然后从文本文件中取出信息。
|
|
2005-2-24 00:00 |
|
|
bush
银牌会员
积分 2165
发帖 730
注册 2004-4-21
状态 离线
|
|
2005-2-25 00:00 |
|
|
bush
银牌会员
积分 2165
发帖 730
注册 2004-4-21
状态 离线
|
『第
8 楼』:
TC DOS.Hvoid getfat(unsigned char drive,
struct fatinfo *dtable);
void getdfree(unsigned char drive,
struct dfree *dtable);WATCOM 好像有:dos_getdiskfree( unsigned __drive,
struct _diskfree_t *__diskspace );
getdiskfree( unsigned __drive,
struct _diskfree_t *__diskspace );
|
|
2005-2-25 00:00 |
|
|
kaixin11
初级用户
积分 122
发帖 5
注册 2005-2-18
状态 离线
|
『第
9 楼』:
呵呵,虽然TC和WATCOM C中都有库函数,但是它们都受2G空间大小限制,对现在的大硬盘都没有用。难啊
|
|
2005-2-28 00:00 |
|