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

Получение информации о диске

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

Получение информации о диске

Два компьютершика спорят:
- Можно ли научить "комп" заикаться?
- Да ты что никогда!
Второй:
- Берет магнит и начинает водить возле винчестера!
В итоге получается песня Расторгуева+Леонидов: "Давай за баранку держись, давай брат шофер до конца"...


function GetVolumeInfoFVS(const Dir:string;
var FileSystemName,VolumeName:string;var Serial:longint):boolean;
{Dir - каталог или буква требуемого диска
FileSystemName - название файловой системы
VolumeName - метка диска
Serial - серийный номер диска
В случае ошибки функция возвращает false}
var
  root:pchar;
  res:longbool;
  VolumeNameBuffer,FileSystemNameBuffer:pchar;
  VolumeNameSize,FileSystemNameSize:DWord;
  VolumeSerialNumber,MaximumComponentLength,FileSystemFlags:DWORD;
  s:string;
  n:integer;
begin
  n:=pos(':',Dir);
  if n> 0 then s:=copy(Dir,1,n+1) else s:=s+':';
  if s[length(s)]=':' then s:=s+'\';
  root:=pchar(s);
  getMem(VolumeNameBuffer,256);
  getMem(FileSystemNameBuffer,256);
  VolumeNameSize:=255;
  FileSystemNameSize:=255;
  res:=GetVolumeInformation(Root,VolumeNameBuffer,VolumeNameSize
  ,@VolumeSerialNumber,
  MaximumComponentLength, FileSystemFlags
  ,FileSystemNameBuffer,FileSystemNameSize);
  Result:=res;
  VolumeName:=VolumeNameBuffer;
  FileSystemName:=FileSystemNameBuffer;
  Serial:=VolumeSerialNumber;
  freeMem(VolumeNameBuffer,256);
  freeMem(FileSystemNameBuffer,256);
end;

Функция Delphi для получения информации о томном объеме!

Функция GetVolumeInfoFVS принимает несколько параметров:

  • Dir: строка, представляющая директорию или букву диска, для которого вы хотите получить информацию.
  • FileSystemName, VolumeName и Serial: переменные, которые будут заполнены соответствующей информацией о диске.

Функция возвращает булевое значение, указывающее, была ли операция успешной. Если возникает ошибка, она возвращает false.

Вот шаг за шагом, что код делает:

  1. Он извлекает букву диска из входной строки Dir с помощью функции pos.
  2. Он конструирует строку пути, добавляя двоеточие (:) или обратный слеш (\) к букве диска, в зависимости от того, является ли это директориями.
  3. Он выделяет память для двух буферов: VolumeNameBuffer и FileSystemNameBuffer, каждый с размером 256 байт.
  4. Он вызывает функцию Windows API GetVolumeInformation с конструированной строкой пути в качестве входного параметра. Функция получает информацию о томном объеме, включая имя файловой системы, имя тома, серийный номер, максимальную длину компонента и флаги файловой системы.
  5. Функция заполняет переменные VolumeName, FileSystemName и Serial полученными значениями.
  6. Наконец, она освобождает выделившуюся память с помощью функции freeMem.

Некоторые примечания:

  • Функция GetVolumeInformation доступна только на системах Windows.
  • Функция GetVolumeInformation может неудачно выполниться по разным причинам, таким как недопустимый ввод или ошибки диска. В этом случае функция возвращает код ошибки, который можно проверить для определения причины неудачи.
  • Выделяемые память буферы не необходимы в Delphi; вы могли бы использовать переменные строкового типа вместо них.

В целом, это полезная функция для получения информации о томных объемах в приложении Delphi!

Функция GetVolumeInfoFVS позволяет получить информацию о диске, включая название файловой системы, метку диска, серийный номер и другие параметры.


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

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