╩αΩ ≤τφα≥ⁿ, φα⌡εΣΦ≥±  δΦ ΣΦ±Ωσ≥α Γ ΣΦ±ΩεΓεΣσ?


type
  TDriveState(DS_NO_DISK, DS_UNFORMATTED_DISK, 
    DS_EMPTY_DISK, DS_DISK_WITH_FILES);

function DriveState(DrvLetter: Char): TDriveState;

var
  Mask: String[6];
  SearchRec: TSearchRec;
  oldMode: Cardinal;
  ReturnCode: Integer;

begin
  oldMode: = SetErrorMode(SEM_FAILCRITICALERRORS);
  Mask:= '?:\*.*';
  Mask[1] := DrvLetter;
  {$I-}  { ε≥Ωδ■≈Φ≥ⁿ εß≡αßε≥Ω≤ Φ±Ωδ■≈Φ≥σδⁿφ√⌡ ±Φ≥≤α÷ΦΘ }
  ReturnCode := FindFirst(Mask, faAnyfile, SearchRec);
  FindClose(SearchRec);

  {$I+}
  case ReturnCode of
    { ΩαΩ ∞ΦφΦ∞≤∞ εΣΦφ ⌠αΘδ ß√δ φαΘΣσφ }
    0: Result := DS_DISK_WITH_FILES;
    { ⌠αΘδεΓ φσ φαΘΣσφε Φ ΣΦ±Ωσ≥α Γ ∩ε≡ ΣΩσ }
    -18: Result := DS_EMPTY_DISK;
    { DS_NO_DISK Σδ  DOS, ERROR_NOT_READY Σδ  WinNT, ERROR_PATH_NOT_FOUND Σδ  Win 3.1 }
    -21, -3: Result := DS_NO_DISK;
  else
    { ΣΦ±Ωσ≥α δσµΦ≥ Γ ΣΦ±ΩεΓεΣσ φε εφα φσ ⌠ε≡∞α≥Φ≡εΓφφα  }
    Result := DS_UNFORMATTED_DISK;
  end;
  SetErrorMode(oldMode);
end; { DriveState }




╤εΓσ≥√ φα≈Φφα■∙Φ∞