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

Как определить размер свободного места на диске

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

Как определить размер свободного места на диске

Для получения размера свободного места на дисках, ёмкость которых больше 2Гб, необходимо использовать функцию GetDiskFreeSpaceEx. Ниже приведён небольшой пример использования данной функции:


var
  FreeBytesAvailableToCaller: TLargeInteger;
  FreeSize: TLargeInteger;
  TotalSize: TLargeInteger;
begin
  GetDiskFreeSpaceEx('c:',
    FreeBytesAvailableToCaller,
    Totalsize,
    @FreeSize);
end;

Результатом будет значение в байтах.

Here's the translation of the Delphi code snippet into Russian:

Код на языке Delphi! Код использует функцию GetDiskFreeSpaceEx для получения свободного пространства на дисковом устройстве. В частности, он запрашивает доступ к дискам 'C:'. В переменных: 1. FreeBytesAvailableToCaller: количество свободных байтов, доступных вызывающему процессу. 2. FreeSize: общее количество свободных байтов на томе. 3. TotalSize: общий размер тома в байтах.

Функция принимает четыре параметра: путь к диску и три переменные для хранения результатов. В этом случае, путь к диску - 'C:', что означает запрос к дискам C:. Результат будет иметь значение в байтах, как вы упомянули.

Дополнительные заметки:

  • TLargeInteger - тип данных Delphi, представляющий большое целочисленное значение.
  • Синтаксис @FreeSize используется для передачи адреса переменной FreeSize функции GetDiskFreeSpaceEx, что позволяет функции записать результат в переменную.

Если вам нужно преобразовать свободное пространство из байтов в более человекочитаемый формат, например, мегабайты (МБ) или гигабайты (ГБ), вы можете использовать следующий код:

var
  FreeBytesAvailableToCaller: TLargeInteger;
  FreeSize: TLargeInteger;
  TotalSize: TLargeInteger;

begin
  GetDiskFreeSpaceEx('c:',
    FreeBytesAvailableToCaller,
    TotalSize,
    @FreeSize);

   // Преобразование свободного пространства из байтов в мегабайты (МБ)
  FreeSizeMB := FreeSize / 1024 * 1024;
   // Или преобразование в гигабайты (ГБ), если нужно
  FreeSizeGB := FreeSize / 1024 * 1024 * 1024;
end;

Код просто делит значение FreeSize на 1024 два раза для преобразования из байтов в мегабайты, или использует три деления для преобразования в гигабайты.

Для определения размера свободного места на диске с ёмкостью более 2 Гб можно использовать функцию GetDiskFreeSpaceEx, которая возвращает результат в байтах.


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

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




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


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


реклама


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

Время компиляции файла: 2024-12-22 20:14:06
2025-01-28 05:39:15/0.022587060928345/1