ドライブの名前またはラベルを取得したい。
私はこの関数を使用します:
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のラベルは空です。名前のないドライブ(CおよびE)のラベルを表示するには、どのwinapi / functionを使用する必要がありますか?