Код:
function CheckDriveType(Drive: Byte): string;
var
DriveLetter: Char;
DriveType: UInt;
begin
DriveLetter := Chr( Drive + $41 );
DriveType := GetDriveType( PChar( DriveLetter + ':\' ) );
case DriveType of
0 : Result := '?';
1 : Result := 'Path does not exists';
DRIVE_REMOVABLE : Result := 'Removable';
DRIVE_FIXED : Result := 'Fixed';
DRIVE_REMOTE : Result := 'Remote';
DRIVE_CDROM : Result := 'CD_ROM';
DRIVE_RAMDISK : Result := 'RAMDISK';
else
Result := 'Unknown'
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
var
i: 0..25;
begin
for i := 0 to 25 do
if CheckDriveType( i ) <> 'Path does not exists' then
Memo1.Lines.Add( Format( '%s - %s', [chr( i+$41 ), CheckDriveType( i )] ) );
end;
Функция CheckDriveType выдаст тебе тип найденного устройства. Тут есть небольшой нюанс. Функция выдаст
Removable для съемных устройств, таких, например, как Floppy или USB Flash. Тут смотри по индексу: если i = 0 или 1, то это Floppy, а если i > 1, то это USB Flash (или другое съемное устройство).