Я хочу отсканировать все доступные буквы дисков, которые существуют на моем компьютере, и получить с ними подробную информацию (проверить, если они заняты, проверить тип и размер).
У меня нет проблем с тем, как получить размер, используя приведенные ниже коды.
var
FreeAvail, totalSpace: Int64;
begin
if SysUtils.GetDiskFreeSpaceEx(PChar('F:\'), FreeAvail, totalSpace, nil) = True
then
begin
F1.Liner('Drive F total space ');
F1.pBold(IntToStr(totalSpace div (1024 * 1024 * 1024)) + ' GB ,');
F1.Liner(' available free space ');
F1.pBold(IntToStr(FreeAvail div (1024 * 1024 * 1024)) + ' GB.');
end;
end;
Но если диск не занят, мне такая ситуация не нравится.
Вопрос: Как сделать доступными ВСЕ диски - CDROM, USB Stick и т.д. Чтобы быть более конкретным, я хочу, чтобы результат отображался, как в этом примере;
Диск E [Локальный диск] — TotalSpace 500 ГБ — FreeSpace 200 ГБ
Диск F [CD-привод] - Незанят - FreeSpace 0
Диск G [Съемный] — TotalSpace 8 ГБ — FreeSpace 2 ГБ
GetVolumeInformation
иGetDriveType
? - person Graymatter   schedule 19.10.2014