![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как определить есть ли в приводе диск???
Zloy SHREK © (2005-01-27 23:26:00)Никак не могу правильно определить есть ли в приводе диск или нет, ну точнее могу, но коряво. Я пытаюсь найти по адресу привода (например H:\ ) хотябы один файл или папку. Но проблема в том что если диска в приводе нет - возникает ошибка "Вставьте диск.".
Как грамотно определить есть в приводе диск или нет?
GanibalLector (2005-01-28 02:38:00) [1]2 Zloy SHREK (28.01.05 02:02) [7]
Ты сильно не радуйся,ибо A:\ может и не быть!Или быть,но с другой буквой...вариаций ОЧЕНЬ много.
Поэтому,сперва используем GetDriveType и сравниваем с DRIVE_REMOVABLE.Если оно,то GetVolumeInformation.И в самом конце,узнаешь кол-во секторов и прочего(ибо диске может быть неотформ.или вообще не рабочая).
Zloy SHREK (2005-01-28 02:02:00) [2]ВСЕМ БОЛЬШОЕ СПАСИБО!!!
УРА!!! ЗАРАБОТАЛО!!!
Просто Джо (2005-01-28 01:08:00) [3]
> [4] GanibalLector ©
Имхо
SetErrorMode(SEM_FAILCRITICALERRORS);
лишнее.
"Достаточно одной таблэтки" (с
GanibalLector (2005-01-28 00:36:00) [4]2 GanibalLector © (28.01.05 00:34) [4]
>Только вот не знаю,что будет если засунуть неотформ.дискету
Хотя,можно использовать GetDiskFreeSpaceEx и узнать кол-во секторов и прочего.
GanibalLector (2005-01-28 00:34:00) [5]Ну да,можно.Так вроде :
var MaximumComponentLength,FileSystemFlags:DWord;
begin
SetErrorMode(SEM_FAILCRITICALERRORS);
if GetVolumeInformation(Pchar('A:\'),nil,0,
nil,MaximumComponentLength,FileSystemFlags,nil,0)=true then
messagedlg('Что-то есть',mtinformation,[mbok],0)
else
messagedlg('Путо',mtinformation,[mbok],0)
Только вот не знаю,что будет если засунуть неотформ.дискету.
Просто Джо (2005-01-28 00:07:00) [6]Нет, GetDriveType снимается.
Остается GetVolumeInformation
Просто Джо (2005-01-28 00:03:00) [7]Или, например,
GetDriveType
Просто Джо (2005-01-28 00:00:00) [8]Не претендуя быть шибко грамотным предлагаю использовать
GetVolumeInformation