╩αΩ ≤τφα≥ⁿ, φα⌡εΣΦ≥± δΦ ΣΦ±Ωσ≥α Γ ΣΦ±ΩεΓεΣσ?
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 }
╤εΓσ≥√ φα≈Φφα■∙Φ∞