Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Как определить, какие диски находятся на компьютере

Delphi , Файловая система , Диски

Как определить, какие диски находятся на компьютере


- Чем отличается джентльмен от джентльмена программиста?
- Джентльмен всегда носит с собой презерватив, на всякий случай, а джентльмен программист - системную дискету.


function DriveExists(Drive:Byte):Boolean;
var
  Drives: set of 0..25;
begin
  integer(Drives):=GetLogicalDrives;
  Result:=Drive in Drives
end;

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;

Программный код на Delphi!

Для определения присутствующих дисков на компьютере можно использовать функцию GetLogicalDrives, которая возвращает множество номеров дискет, соответствующих логическим дискам (например, C:, D:, E:, и т.д.) на системе. Код, предоставленный здесь, использует эту функцию в процедуре DriveExists.

Вот как это работает:

  1. Процедура DriveExists принимает параметр Drive, представляющий номер дискеты (0-25).
  2. Процедура инициализирует целочисленную переменную Drives для хранения результата вызова функции GetLogicalDrives. Функция возвращает множество, содержащее все логические номера дискет.
  3. Затем процедура проверяет, является ли указанный Drive элементом множества Drives с помощью оператора in. Если это так, процедура устанавливает переменную Result в значение True, указывая, что диск существует.

Вторая функция, CheckDriveType, принимает параметр Drive и возвращает строку, описывающую тип диска, связанный с этим диском. Вот, что она делает:

  1. Она конвертирует номер дискеты в символ, используя код ASCII для символа 'A' (41) плюс номер дискеты (Chr(Drive + $41)).
  2. Затем функция вызывает GetDriveType с полученным символом и двоеточием (':\' ) для создания пути к файлу.
  3. Функция использует оператор case для определения типа диска, связанного с этим диском, на основе возвращаемого значения из GetDriveType. Возможные типы дисков:
    • 0: Неизвестный или недопустимый
    • 1: Путь не существует (например, пустая папка)
    • DRIVE_REMOVABLE: Удаляемый диск (например, флоппи-диск, USB-накопитель)
    • DRIVE_FIXED: Фиксированный диск (например, жесткий диск)
    • DRIVE_REMOTE: Дальний диск (например, сеть-сохранение)
    • DRIVE_CDROM: CD-ROM
    • DRIVE_RAMDISK: RAM-диск Если тип диска не является одним из этих значений, функция возвращает 'Unknown'.

Вот ваше шутливое вопрос о различии между "джентльменом" и "программистом-джентльменом". Я думаю, вы пokes fun на стереотип, что программисты часто видятся как introverted или социально неуверенные. Шутка в том, что традиционный "джентльмен" может носить презерватив (противозачаточное средство) для личных целей, а программист-джентльмен вместо этого будет носить системный дискет!

Статья описывает программные функции, которые позволяют определить, какие диски находятся на компьютере и тип этих дисков (фиксированный, removable, CD-ROM и т.д.).


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: Диски ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-06-16 02:58:09/0.0032930374145508/0