Учебное пособие: Файловая система

// если строка получена, то разбираем ее по частям

for (p = temp; *p; p += lstrlen(p) + 1) {

wsprintf(buffer, "Root: %s", p);

switch (GetDriveType(p)) {

case 0: s = "???"; break;

case 1: s = "invalid"; break;

case DRIVE_REMOVABLE: s = "REMOVABLE"; break;

case DRIVE_FIXED: s = "FIXED"; break;

case DRIVE_REMOTE: s = "REMOTE"; break;

case DRIVE_CDROM: s = "CD-ROM"; break;

case DRIVE_RAMDISK: s = "RAM DISK"; break;

default: s = "what?!"; break;}

// укажем явное преобразование указателя на строку ‘s’ к типу

// LPSTR — так как в Windows API для моделей памяти с одним сегментом

// данных (tiny,small,medium) указатели по умолчанию 16-ти разрядные

// а для функций Windows обязательно нужны 32-х разрядные

wsprintf(buffer+lstrlen(buffer), " type=%s volume='", (LPSTR)s);

sernum = complen = flags = 0; file_system[0] = '\0';

if (

GetVolumeInformation(

p, buffer+lstrlen(buffer), 64,

&sernum, &complen, &flags,

file_system, sizeof(file_system)))

{// если информация о томе прочитана -> получаем и выводим более

// подробныесведения

wsprintf(buffer+lstrlen(buffer), "' serial=%08lX\r\n", sernum);

_lwrite(hf, buffer, lstrlen(buffer));

spc = bps = fc = tc = 0L;

GetDiskFreeSpace(p, &spc, &bps, &fc, &tc);

К-во Просмотров: 528
Бесплатно скачать Учебное пособие: Файловая система