15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как определить тип диска

Для этого надо воспользоваться API функцией GetDriveType(). Функция имеет параметр PChar и возвращает TDriveType. Допустим у Вас есть форма (Form1) с двумя контролами Edit на ней (Edit1 и Edit2) и, следующая функция:

procedure TForm1.Button1Click(Sender: TObject);
var
   s : String;
begin
  s:=edit1.Text;
  setlength(s,1);
  if GetDriveType(Pchar(s)) <> DRIVE_REMOTE then
     edit1.Text:=Volumeid(s[1])
  else
    edit1.Text:=NetworkVolume(s[1]);
  S:=S+#58+#92;
  Setlength(s,3);
  case GetDriveType(Pchar(s)) of
       0:                edit2.Text:='Тип диска невозможно определить.';
       1 :                edit2.Text:='корневая директория не существует.';
       DRIVE_REMOVABLE:  edit2.Text:='Диск съёмный.';
       DRIVE_FIXED:      edit2.Text:='Диск не съёмный.';
       DRIVE_REMOTE: edit2.Text:='Диск является сетевым ресурсом.';
       DRIVE_CDROM: edit2.Text:='Диск является CD-ROM.';
       DRIVE_RAMDISK:    edit2.Text:='Диск явяляется RAM диском.';
  end;
end;