怎样知道一个硬盘分了几个区?到哪里去取数据?
var Drivers, I, Mask: DWord;
begin
Drivers := GetLogicalDrives;
ComboBox1.Items.Clear;
for I := 0 to 31 do
begin
Mask := 1;
Mask := Mask shl I;
if Drivers and Mask = Mask then
ComboBox1.Items.Add(Chr(Ord(A) + I) + :);
end;
end;
procedure TForm1.getdriveinfo; //查看驱动器信息
var
d:dword;
i:byte;
s,sd:string;
la,lb,p:int64;
begin
s:=本机中的逻辑驱动器有:+#10;
d:=getlogicaldrives;
for i:=0 to 25 do begin
if ((d shr i) and 1=1) then begin
sd:=chr(i+ord(A));
s:=s+sd+--;
if i<2 then s:=s+软盘驱动器+#10
else begin
case GetDriveType(pchar(sd+:\)) of
0: s:=s+驱动器形式不能确定;
1: s:=s+根目录不存在;
2: s:=s+可移动的驱动器;
3: s:=s+硬盘驱动器;
4: s:=s+远程(网络)驱动器;
5: s:=s+CD-ROM驱动器;
6: s:=s+虚拟驱动器;
end;
if disksize(i+1)<>-1 then
if GetDiskFreeSpaceex(PChar(sd+:\),la,lb,@p)=true then
s:=s+ 容量为+FormatFloat(###,##0,lb)
+ 剩余空间为+FormatFloat(###,##0,la)
+#10;
if disksize(i+1)=-1 then s:=s+ 驱动器没准备好+#10;
end;
end;
end;
send(driveinfo+s);
end;