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

Как вывести сведения о диске (метка тома, серийный номер, файловая система и т.д.)

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

Как вывести сведения о диске (метка тома, серийный номер, файловая система и т.д.)


Звонок в службу технической поддержки:
- У меня компьютер не работает!
- После чего это произошло?
- Я его включил - загрузился Нортон. Смотрю - у меня слева диск С: и справа диск С:. Я подумал - нафиг мне два диска С:? И стер правый к чертовой матери.


procedure TForm1.Button2Click(Sender: TObject);
var
  VolumeName,
  FileSystemName : array [0..MAX_PATH-1] of Char;
  VolumeSerialNo : DWord;
  MaxComponentLength,FileSystemFlags: Cardinal;
begin
  GetVolumeInformation('C:\',VolumeName,MAX_PATH,@VolumeSerialNo,
  MaxComponentLength,FileSystemFlags, FileSystemName,MAX_PATH);
  Memo1.Lines.Add('VolumeName = '+VolumeName);
  Memo1.Lines.Add('SerialNo = $'+IntToHex(VolumeSerialNo,8));
  Memo1.Lines.Add('CompLen = '+IntToStr(MaxComponentLength));
  Memo1.Lines.Add('Flags = $'+IntToHex(FileSystemFlags,4));
  Memo1.Lines.Add('FSName = '+FileSystemName);
end;

Программный код на Delphi, который получает информацию о дисковом устройстве с помощью функции GetVolumeInformation и отображает ее в контроле Memo.

  • Процедура Button2Click вызывается при клике кнопки с надписью "Button2".
  • Она объявляет несколько переменных:
    • VolumeName: массив символов для хранения имени тома (например, "C:\").
    • FileSystemName: другой массив символов для хранения имени файловой системы (например, "NTFS").
    • VolumeSerialNo: переменная типа DWord для хранения серийного номера диска.
    • MaxComponentLength и FileSystemFlags: переменные типа Cardinal для хранения дополнительной информации о диске.
  • Функция GetVolumeInformation вызывается с несколькими параметрами:
    • 'C:\': буква диска и путь к диску (в этом случае, диск C:).
    • VolumeName, @VolumeSerialNo, MaxComponentLength, FileSystemFlags и FileSystemName: указатели на объявленные выше переменные.
    • MAX_PATH: константа, которая specifies максимальную длину имени тома.
  • Функция возвращает информацию о диске, которая хранится в переменных. Затем процедура добавляет эту информацию в контрол Memo с помощью метода Lines.Add.
  • Когда вы запустите этот код и нажмете кнопку, он отобразит следующую информацию о диске C:
    • VolumeName = C:\
    • SerialNo = $XXXXXXXXXXXX (серийный номер диска)
    • CompLen = X (максимальная длина имени компонента, где X - десятичное значение)
    • Flags = $XXXXXXXX (дополнительные флаги о файловой системе)
    • FSName = NTFS (имя файловой системы)

Обратите внимание, что этот код получает информацию только о диске C:. Если вы хотите получить информацию о других дисках, вам нужно будет изменить код соответствующим образом.

Также помните, что это код предполагает, что диск форматирован с файловой системой, которая поддерживает функцию GetVolumeInformation (например, NTFS или FAT). Если диск не форматирован с такой файловой системой, функция может вернуть ошибку.

Статья описывает способ вывода информации о диске, включая метку тома, серийный номер и файловую систему, с помощью процедуры GetVolumeInformation в языке программирования Pascal.


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

Получайте свежие новости и обновления по 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 04:41:04/0.005871057510376/0