АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомДругоеЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Функції для роботи з дисковими накопичувачами

Читайте также:
  1. B Хід роботи.
  2. VІІ. Оформлення роботи
  3. Алгоритм виконання роботи
  4. АЛГОРИТМ ДІЇ АДМІНІСТРАЦІЇ ТА ЗАСТУПНИКА ДИРЕКТОРА З ВИХОВНОЇ РОБОТИ ЗАКЛАДУ ОСВІТИ ПІД ЧАС ЗДІЙСНЕННЯ ПЕРЕВІРКИ ФАХІВЦЯМИ СЛУЖБИ У СПРАВАХ ДІТЕЙ
  5. АЛГОРИТМ РОБОТИ НАД ПРОФЕСІЙНО-ОРІЄНТОВАНИМИ ЗАВДАННЯМИ З КУРСУ «ОСНОВИ ПСИХОЛОГІЧНОГО ТРЕНІНГУ»
  6. Аналіз ритмічності роботи підприємства.
  7. АРХІВНІ ДОВІДНИКИ В СИСТЕМІ НДА: ФУНКЦІЇ ТА СТРУКТУРА
  8. Будова та функції кишечника
  9. В чому ви вбачаєте зміст поняття “соціальні ілюзії”?(Підготовка зазначеної доповіді є формою індивідуальної роботи; обов’язкова до виконання;форма виконання - письмова).
  10. В чому ви вбачаєте зміст поняття “соціальні ілюзії”?(Підготовка зазначеної доповіді є формою індивідуальної роботи; обов’язкова до виконання;форма виконання - письмова).
  11. В яких відповідях правильно зазначено осіб, яким громадські роботи не призначаються?
  12. Варіанти контрольної роботи №1.

Для визначення інформації щодо вільного місця на певному диску можна використовувати функції WinAPI GetDiskFreeSpace і GetDiskFreeSpaceEx. Для використання обох функцій необхідно підключити до своєї програми модуль Windows.h, якщо він ще не був підключений.

Розглянемо більш детально роботу цих функцій.

Функція

BOOL GetDiskFreeSpace

(LPCTSTR lpRootPathName,

LPDWORD lpSectorsPerCluster,

LPDWORD lpBytesPerSector,

LPDWORD lpNumberOfFreeClusters,

LPDWORD lpTotalNumberOfClusters);

 

повертає інформацію про кількість секторів на один кластер (lpSectorsPerCluster), розмір кластера в байтах (lpBytesPerSector), кількість вільних кластерів (lpNumberOfFreeCluster), загальну кількість кластерів (lpTotalNumberOfClusters). В якості вхідного параметра функція приймає покажчик на нуль-термінований рядок, який визначає кореневий каталог диску, інформацію про який необхідно повернути. Визначення диску має завершуватися зворотнім слешем (наприклад, C:\). В разі успіху функція повертає ненульове значення.

Слід відзначити, що ця функція повертає некоректну інформацію для дисків обсягом більше ніж 2 ГБ. Для отримання коректної інформації про диски великого обсягу слід використовувати функцію

BOOL GetDiskFreeSpaceEx

(LPCTSTR lpDirectoryName,

PULARGE_INTEGER lpFreeBytesAvailable,

PULARGE_INTEGER lpTotalNumberOfBytes,

PULARGE_INTEGER lpTotalNumberOfFreeBytes);

 

Ця функція повертає кількість вільних і доступних користувачеві байт (lpFreeBytesAvailable), загальну кількість доступних користувачеві байт (lpTotalNumberOfBytes), загальну кількість вільних байт (lpTotalNumberOfFreeBytes). В якості вхідного параметра lpDirectoryName функція може приймати не тільки кореневий каталог, але й будь-який каталог на диску.

Необхідно відмітити, що значення, які повертаються функціями GetDiskFreeSpace і GetDiskFreeSpaceEx, можуть бути відмінними від фактичних значень, якщо використовуються дискові квоти.

Також слід відзначити, що функція GetDiskFreeSpaceEx повертає 64-бітні значення, тому треба бути уважними при роботі з ними, щоб не усікти до 32-бітних значень.

Для визначення типу диску може використовуватись функція

UINT GetDriveType

(LPCTSTR lpRootPathName);

 

Вона приймає, аналогічно попереднім функціям, визначення кореневого каталогу диску, і повертає одне з наступних значень:

DRIVE_UNKNOWN – якщо тип диску не може бути визначений;

DRIVE_NO_ROOT_DIR – вказаний корень не є коректним;

DRIVE_REMOVABLE – диск знімний;

DRIVE_ FIXED – диск незнімний;

DRIVE_REMOTE – диск в мережі;

DRIVE_CDROM – диск є CD-ROM-диском;

DRIVE_RAM – диск є RAM-диском.

Для визначення мітки диску і його серійного номеру використовують функцію GetVolumeInformation.

Перелік дисків, наявних у системі, можна отримати за допомогою однієї із функцій GetLogicalDrives або GetLogicalDrivesStrings.


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.003 сек.)