正好我前两天写过一段类似代码,你可以参考参考:
procedure EnumLogicalDrivers(DriveList: TStrings);
var dwDrivers, I, Mask: DWord;
begin
if not Assigned(DriveList) then
Exit
else
DriveList.Clear; // 结果存到DriveList里。
dwDrivers:=GetLogicalDrives; // 调用这个API是关键。
for I:=0 to SizeOf(DWord) - 1 do
begin
Mask:=$00000001;
Mask:=Mask shl I;
if dwDrivers and Mask = Mask then
DriveList.Add(Chr(Ord('A') + I) + ':');
end;
end;
procedure EnumLogicalDrivers(DriveList: TStrings);
var dwDrivers, I, Mask: DWord;
begin
if not Assigned(DriveList) then
Exit
else
DriveList.Clear; // 结果存到DriveList里。
dwDrivers:=GetLogicalDrives; // 调用这个API是关键。
for I:=0 to SizeOf(DWord) - 1 do
begin
Mask:=$00000001;
Mask:=Mask shl I;
if dwDrivers and Mask = Mask then
DriveList.Add(Chr(Ord('A') + I) + ':');
end;
end;
if dwDrivers and Mask = Mask then
begin
///////////////
if GetDriveType(Chr(Ord('A')+i)+':\') = DRIVE_FIXED then
///////////////
DriveList.Add(Chr(Ord('A') + I) + ':');
end ;
end;
DRIVE_REMOVABLE、DRIVE_CDROM等,可以参看msdn有关帮助