Программирование на Delphi и не только Как проверить готовность диска без появления ошибки? | Программирование на Delphi и не только

Delphi FAQ >> Система

Иногда требуется проверить готовность диска, перед обращением к нему. При этом если сделать это «в лоб» — возникнет сообщение об ошибке. Поэтому сначала бывает полезным изменить режим отображения ошибок, а только потом проверять готовность диска. Вот готовая функция на языке программирования Delphi, которая по букве диска проверяет его готовность:

//проверяет готовность диска по его букве (aDrive)
function TestDrive(aDrive: Char): Boolean;
var   ErrorModeBuf: Word;

  DirectoryBuf: String;


begin   ErrorModeBuf := SetErrorMode(Windows.SEM_NOOPENFILEERRORBOX);   GetDir(0, DirectoryBuf);

  //берем на себя контроль ошибок ввода\вывода


  {$I-}
    //пытаемся перейти в корень проверяемого диска     ChDir(aDrive + ':\');

  {$I+}


  //если возникла ошибка, то диск не готов
  if (IoResult 0) then     Result := False

  else


    //иначе - готов     Result := True;

  //возвращаемся к предыдущей директории

  ChDir(DirectoryBuf);

  //устанавливаем запомненный режим ошибок

  SetErrorMode(ErrorModeBuf);

end;

Всегда хочется выглядеть красивой и стильной. Немалую роль в этом могут играть украшения. Но не всегда хватает средств на элитную бижутерию, но ведь и не вся модная бижутерия стоит дорого, так что часто можно обойтись и более дешевыми вариантами.