【问题标题】:How to display label of unnamed drive?如何显示未命名驱动器的标签?
【发布时间】:2010-05-17 14:35:27
【问题描述】:

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

我使用这个功能:

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/function 来显示未命名驱动器(C 和 E)的标签?

【问题讨论】:

    标签: delphi drives


    【解决方案1】:

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

    标签是一个用户友好的名称, 分配给一个卷,通常由一个 最终用户,使其更容易 认出。卷可以有标签, 一个驱动器号,两者都有,或者两者都没有。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-26
      • 1970-01-01
      • 1970-01-01
      • 2015-11-22
      • 2020-10-15
      相关资源
      最近更新 更多