如何获得光盘的卷标(50分)

P

plf22

Unregistered / Unconfirmed
GUEST, unregistred user!
请问如何在光盘插入后,读出光盘的卷标,就是刻盘时起的名字
 
uses Windows, MMSystem;

//获得CDRom卷标,返回''表示驱动器中没有光盘

function GetCDRomLabel(ADrive: string): string;
var
VolumeName : array[0..255] of char;
FileSystemType : array[0..255] of char;
SerialNum : DWORD;
MaxFilenameLength : DWORD;
Flags : DWORD;
begin
//Result := '驱动器中没有CDRom';
if (GetVolumeInformation(PChar(ADrive),
VolumeName,
256,
@SerialNum,
MaxFilenameLength,
Flags,
FileSystemType,
256)) then
Result := VolumeName;
end;

 
plf22:
相信楼上的那位大侠吧,若连他都不信,你还能信谁
 
如楼上所言,
获得光盘的卷标和得到逻辑硬盘的卷标是一样的.都是用GetVolumnInformation.
 
function VolumeID(DriveChar: Char): string;
var
OldErrorMode: Integer;
NotUsed, VolFlags: DWORD;
Buf: array [0..MAX_PATH] of Char;
begin
OldErrorMode := SetErrorMode(SEM_FAILCRITICALERRORS);
try
Buf[0] := #$00;
if GetVolumeInformation(PChar(DriveChar + ':/'), Buf, DWORD(sizeof(Buf)),
nil, NotUsed, VolFlags, nil, 0) then
SetString(Result, Buf, StrLen(Buf))
else Result := '';
if DriveChar < 'a' then
Result := AnsiUpperCaseFileName(Result)
else
Result := AnsiLowerCaseFileName(Result);
Result := Format('[%s]',[Result]);
finally
SetErrorMode(OldErrorMode);
end;
end;
 
多人接受答案了。
 
请问网络硬盘的卷标怎样可以得到!
 
顶部