Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > Синтаксис
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 24.07.2006, 17:25
greenbegin greenbegin вне форума
Прохожий
 
Регистрация: 16.06.2006
Сообщения: 6
Репутация: 10
По умолчанию как определить буквы логических и физических жестких дисков

Как в Delphi определить сколько всего в системе физических и логических жестких дисков, а главное, какие у них буквы?
Ответить с цитированием
  #2  
Старый 24.07.2006, 18:09
Аватар для Ferra
Ferra Ferra вне форума
Местный
 
Регистрация: 12.03.2006
Адрес: Минск
Сообщения: 527
Репутация: 1336
Стрелка

Цитата:
function DriveExists(Drive:Byte):Boolean;
var
Drives: set of 0..25;
begin
integer(Drives):=GetLogicalDrives;
Result:=Drive in Drives
end;

function CheckDriveType(Drive: Byte): string;
var
DriveLetter: Char;
DriveType: UInt;
begin
DriveLetter:=Chr(Drive + $41);
DriveType:=GetDriveType(PChar(DriveLetter + ':\'));
case DriveType of
0: Result:='?';
1: Result:='Path does not exists';
DRIVE_REMOVABLE: Result:='Removable';
DRIVE_FIXED: Result:='Fixed';
DRIVE_REMOTE: Result:='Remote';
DRIVE_CDROM: Result:='CD_ROM';
DRIVE_RAMDISK: Result:='RAMDISK'
else
Result:='Unknown'
end
end;

Далее пишешь:

Цитата:
for i:=0 to 25 do
if DriveExists(i) then
...
CheckDriveType(i);
...
__________________
Нет повести печальнее на свете, чем повесть о заклиневшем Resete.
Ответить с цитированием
  #3  
Старый 24.07.2006, 22:16
Аватар для Ross
Ross Ross вне форума
Активный
 
Регистрация: 15.10.2005
Адрес: Казань
Сообщения: 250
Репутация: 30
По умолчанию

Могу предложить кое-что по-проще:

На форму кидаешь ListBox и кнопку:

Код:
function DriveExists (Drive: Byte) : boolean; 
begin 
  Result := Boolean (GetLogicalDrives and (1 shl Drive)); 
end; 

procedure TForm1.Button1Click(Sender : TObject); 
  var Drive : byte; 
begin 
 for Drive := 0 to 25 do  
   If DriveExists (Drive) then  
 begin  
 ListBox1.Items.Add (Chr(Drive+$41));  
 end;  
end; 
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:42.


 

Сайт

Форум

FAQ

RSS лента

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2023

ВКонтакте   Facebook   Twitter