delphi 枚举所有电脑磁盘


本文整理自网络,侵删。

 
procedure TForm1.FormCreate(Sender: TObject);
var
  res: TResourceStream;
  driveList: array [1..64] of Char;
  drive: string;
  driveName: array [0..127] of Char;
  rev1, rev2: Cardinal;
  driveLen: Cardinal;
  driveType: Cardinal;
  start, stop: Integer;
const
  defDriveName: string = '可移动磁盘';
begin
 //
 {
 GetDriveType(路径) 判断一个磁盘驱动器的类型 返回一个整数

0 驱动器类型不确定
1 系统目录不存在
2 DRIVE_REMOVABLE 是可移动驱动器
3 DRIVE_FIXED 是固定驱动器
4 DRIVE_REMOTE 是网络驱动器
5 DRIVE_CDROM 是CD-ROM驱动器
6 DRIVE_RAMDISK 是虚拟驱动器
}

  driveLen := GetLogicalDriveStrings(SizeOf(driveList), @driveList);
  start := 1;
  for stop := 1 to driveLen do
  begin
    if driveList[stop] = #0 then
    begin
      drive := Copy(driveList, start, stop - start);
      driveType := GetDriveType(PWideChar(drive));
      GetVolumeInformation(PWideChar(drive), @driveName, SizeOf(driveName), nil, rev1, rev2, nil, 0);

      if Length(string(driveName)) = 0 then
      begin
        ZeroMemory(@driveName, SizeOf(driveName));
        CopyMemory(@driveName, PWideChar(defDriveName), Length(defDriveName) * SizeOf(Char));
      end;

      if driveType = DRIVE_FIXED then
      begin
        ComboBox_Drive.AddItem(Format('%s', [drive]),
          TStringBuilder.Create(drive));
      end;

      start := stop + 1;
    end;
end;

ComboBox_Drive.ItemIndex := 0;

end;

相关阅读 >>

Delphi firedac数据库引擎连接mysql

Delphi idhttp的基本用法

Delphi程序支持外部参数

Delphi 将 html 代码直接加入到 twebbrowser 组件中去

Delphi 2009 查看所有 unicode 字符

Delphi程序不受windows日期格式的影响

Delphi tnethttpclient https忽略证书验证

Delphi运行时的问题,cannot focus a disabled or invisible window!

Delphi 语法基础: 使用不同的数据类型标记数组

Delphi xe 减少程序体积!

更多相关阅读请进入《Delphi》频道 >>



打赏

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码打赏,您说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

分享从这里开始,精彩与您同在

评论

管理员已关闭评论功能...