delphi - 如何显示未命名驱动器的标签?

标签 delphi drives

我想获取驱动器的名称或标签。

我使用这个功能:

function GetVolumeLabel(DriveChar: Char): string;
var
  NotUsed:     DWORD;
  VolumeFlags: DWORD;
  VolumeInfo:  array[0..MAX_PATH] of Char;
  VolumeSerialNumber: DWORD;
  Buf: array [0..MAX_PATH] of Char;
begin
    GetVolumeInformation(PChar(DriveChar + ':\'),
    Buf, SizeOf(VolumeInfo), @VolumeSerialNumber, NotUsed,
    VolumeFlags, nil, 0);

    SetString(Result, Buf, StrLen(Buf));   { Set return result }
    Result:=AnsiUpperCase(Result)
end;

例如,这是 Windows 资源管理器中我的驱动器:

Local Disk (C:)
Data (D:)
DVD RW Drive (E:)

代码的输出:

C: 
D: DATA
E:

C和E的标签为空。我应该使用什么 winapi/函数来显示未命名驱动器(C 和 E)的标签?

最佳答案

我相信,当没有卷标时,“本地磁盘”和“DVD RW 驱动器”用作占位符。来自 MSDN :

A label is a user-friendly name that is assigned to a volume, usually by an end user, to make it easier to recognize. A volume can have a label, a drive letter, both, or neither.

不确定这是否有帮助,但您可能想使用 GetDriveType并根据返回值生成标签。虽然 GetDriveType 区分硬盘驱动器、可移动驱动器和 CD 类型驱动器,但我认为它不会区分 CD-ROM/CD-RW/DVD-ROM/DVD-RW 驱动器。

关于delphi - 如何显示未命名驱动器的标签?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2846954/

相关文章:

delphi - Delphi和PowerPoint

ajax - delphi中如何在不关闭和打开数据集的情况下刷新dbgrid?

multithreading - Powershell 同时唤醒多个媒体驱动器

c++ - 如何将 linux 设备路径与 windows 驱动器名称匹配?

windows - Cmake 文件跨驱动器复制

excel - 如何从 Excel 导入实际值而不是格式化值

delphi - 如何让 Delphi XE2 通过 SSL 与 Google Calendar API 对话?

delphi - 使用 Indy http (idHTTP1.Get) 从 Delphi 2005 升级到 2010 后出现授权问题

c++ - 如何使用相对路径切换到不同的驱动器

Ruby 获取可用的磁盘驱动器