Go homepage(回首页)
Upload pictures (上传图片)
Write articles (发文字帖)

The author:(作者)aaa
published in(发表于) 2014/7/19 0:13:15
delphi获取可用驱动器信息

delphi获取可用驱动器信息|GetDriveType 函数

获取可用驱动器信息

驱动器分为多种类型,可以使用GetDriveType 函数来查看,该函数的原型如下:

UINT GetDriveType(LPCTSTR lpRootPathName);

该函数有7 种返回值,每个返回值对应的驱动器类型如下。

• 0:不能判断的驱动器类型。

• 1:根目录不存在。

• DRIVE_REMOVABLE:这是一个可移动驱动器。

• DRIVE_FIXED:这是硬盘驱动器。

• DRIVE_REMOTE:这是一个网络驱动器。

• DRIVE_CDROM:这是一个光盘驱动器。

• DRIVE_RAMDISK:这是一个虚拟硬盘。

驱动器的容量可以用GetDiskFreeSpace 函数来获取,该函数的原型如下:

BOOL GetDiskFreeSpace(

LPCTSTR lpRootPathName,

LPDWORD lpSectorsPerCluster,

LPDWORD lpBytesPerSector,

LPDWORD lpNumberOfFreeClusters,

LPDWORD lpTotalNumberOfClusters

);

下面编写一个示例,来获得驱动器的类型与容量。此示例以26 个字母的AscII 码值为序进行循环,以判断它们是不是有效驱动器。如果是,则用Case 语句判断GetDriveType()返回的驱动器类型,并获得该驱动器的容量。

(1)新建一个工程。在窗体中添加一个Memo 组件和一个Button 组件。设置Button 组件的Caption 属性为“获取”。

(2)为“获取”按钮添加代码如下:

procedure TForm1.Button1Click(Sender: TObject);

var

i: Integer;

C: String;

DType: Integer;

DriveString: String;

driver:pchar;

sec1, byt1, cl1, cl2:longword;

begin

//通过循环依次判断各盘符的类型

for i := 65 to 90 do

begin

C := chr(i)+’:’;

DType := GetDriveType(PChar(C));

case DType of

0: DriveString := C+’ 不能判断的驱动器类型.’;

1: if chr(i)>’C’ then

Exit

else

DriveString := C+’ 根目录不存在.’;

DRIVE_REMOVABLE: DriveString :=

C+’ 这是一个可移动驱动器’;

DRIVE_FIXED: DriveString :=

C+’ 这是硬盘驱动器.’;

DRIVE_REMOTE: DriveString :=

C+’ 这是一个网络驱动器.’;

DRIVE_CDROM: DriveString := C+’ 这是一个光盘驱动器.’;

DRIVE_RAMDISK: DriveString := C+’ 这是一个虚拟硬盘.’;

end;

Memo1.Lines.Add(DriveString);

driver:=pchar(c);//要显示的驱动器名

GetDiskFreeSpace(driver, sec1, byt1, cl1, cl2);

cl1 := cl1*sec1 * byt1;

cl2 := cl2*sec1 * byt1;

Memo1.Lines.add(’该驱动器总共容量’ + Formatfloat(’###,##0’,cl2) + ’字节’);

Memo1.Lines.add(’该驱动器可用容量’ + Formatfloat(’###,##0’,cl1) + ’字节’);

Memo1.Lines.Add(’’);

end;

end;

(3)保存并执行程序,单击“获取”按钮.




If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)





QQ:154298438
QQ:417480759