// класса CWinApp

//=====================================================

BOOL CMFStartApp::InitInstance() {

 // Определяем характеристики файловой системы

 FileSystemInfo();

 // Завершаем приложение

 return FALSE;

}

//=====================================================

// Метод FileSystemInfo главного класса приложения

// Определяет характеристики текущего тома и записывает

// их в файл

//=====================================================

void CMFStartApp::FileSystemInfo() {

 // Метка тома

 CString VolumeNameBuffer;

 // Максимальная длина метки тома

 DWORD nVolumeNameSize = 100;

 // Серийный номер тома

 DWORD VolumeSerialNumber;

 // Максимальная длина имени файла

 DWORD MaximumComponentLength;

 // Характеристики файловой системы

 DWORD FileSystemFlags;

 // Тип файловой системы

 CString FileSystemNameBuffer;

 // Максимальная длина строки типа файловой системы

 DWORD nFileSystemNameSize = 100;

 // Получаем данные о файловой системе и текущем устройстве

 GetVolumeInformation(NULL, VolumeNameBuffer.GetBuffer(nVolumeNameSize), nVolumeNameSize, &VolumeSerialNumber, &MaximumComponentLength, &FileSystemFlags, FileSystemNameBuffer.GetBuffer(nFileSystemNameSize), nFileSystemNameSize);

 // Снимаем блокировку буферов

 VolumeNameBuffer.ReleaseBuffer();

 FileSystemNameBuffer.ReleaseBuffer();

 // Обрабатываем ошибочные ситуации, которые могут

 // возникнуть при работе с файлами

 try {

  // Создаем файл fsystem.dat и открываем его для записи

  CStdioFile file('fsystem.dat', CFile::modeCreate | CFile::modeWrite | CFile::typeText);

  // Временная строка, используемая для записи в файл

  CString strTmpOut;

  // Увеличиваем размер буфера до 512 байт

  strTmpOut.GetBuffer(512);

  // Записываем в файл метку тома

  strTmpOut.Format('Метка тома: %s ', VolumeNameBuffer);

  file.WriteString(strTmpOut);

  // Записываем в файл серийный номер

  strTmpOut.Format('Серийный номер: %X ', VolumeSerialNumber);

  file.WriteString(strTmpOut);

  // Записываем в файл тип файловой системы

  strTmpOut.Format('Тип файловой системы: %s ', FileSystemNameBuffer);

  file.WriteString(strTmpOut);

  // Записываем в файл максимальную длину имени файла

  strTmpOut.Format('Максимальная длина имени файла: %d ', MaximumComponentLength);

  file.WriteString(strTmpOut);

  // Записываем в файл свойства файловой системы

  strTmpOut = 'Свойства файловой системы ';

  if (FileSystemFlags & FS_CASE_IS_PRESERVED) strTmpOut += ' FS_CASE_IS_PRESERVED ';

  if (FileSystemFlags & FS_CASE_SENSITIVE) strTmpOut += ' FS_CASE_SENSITIVE ';

  if (FileSystemFlags & FS_UNICODE_STORED_ON_DISK) strTmpOut += ' FS_UNICODE_STORED_ON_DISK ';

  if (FileSystemFlags & FS_PERSISTENT_ACLS) strTmpOut += ' FS_PERSISTENT_ACLS ';

  if (FileSystemFlags & FS_FILE_COMPRESSION) strTmpOut += ' FS_FILE_COMPRESSION ';

  if (FileSystemFlags & FS_VOL_IS_COMPRESSED) strTmpOut += ' FS_VOL_IS_COMPRESSED ';

  file.WriteString(strTmpOut);

  // Закрываем файл

  file.Close();

  // Отображаем сообщение об успешном завершении приложения

Добавить отзыв
ВСЕ ОТЗЫВЫ О КНИГЕ В ИЗБРАННОЕ

0

Вы можете отметить интересные вам фрагменты текста, которые будут доступны по уникальной ссылке в адресной строке браузера.

Отметить Добавить цитату