Go homepage(回首页) Upload pictures (上传图片) Write articles (发文字帖)
The author:(作者)aaapublished in(发表于) 2014/7/19 0:13:15 delphi获取可用驱动器信息
获取可用驱动器信息驱动器分为多种类型,可以使用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);vari: Integer;C: String;DType: Integer;DriveString: String;driver:pchar;sec1, byt1, cl1, cl2:longword;begin//通过循环依次判断各盘符的类型for i := 65 to 90 dobeginC := chr(i)+’:’;DType := GetDriveType(PChar(C));case DType of0: DriveString := C+’ 不能判断的驱动器类型.’;1: if chr(i)>’C’ thenExitelseDriveString := 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)保存并执行程序,单击“获取”按钮.
赞