Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Как определить есть ли в приводе диск???


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


Наверх

Титульная страница Поиск, карта сайта Написать письмо