Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2008, 15:04   #1
Altera
Старожил
 
Аватар для Altera
 
Регистрация: 29.01.2008
Сообщений: 2,406
По умолчанию Поиск дисков!

Привет всем!
у меня вопрос! Как мне (с помощью цикла) узнать, какие диски (А:\, C:\, F:\, и т.д.) существуют и добавить их в список, скажем в листБокс?
-------------------------------------------------------
Код:
var
d: char;
begin
   for d := 'a' to 'z' do
   begin
      if DirectoryExists(d+':\') then
      begin
         listBox1.Items.Add(d+':\');
      end;
   end;
end;
Но из [a, c, d, e, f, g, h, i, j, y, z] дисков прога выдаёт только [c, d, e, f, g, h, j] j - диковот Alcohol-а и в него смонтирован образ! Как мне сделать так, чтоб отображались бы и те дисководы, в которых нет диска?
-------------------------------------------------------
Спасибо заранее!!!
Altera вне форума Ответить с цитированием
Старый 14.03.2008, 16:05   #2
dimonbest
Форумчанин
 
Регистрация: 07.02.2008
Сообщений: 150
По умолчанию

Код:
  Integer(DriveBits) := GetLogicalDrives;
  for DriveNum := 0 to 25 do
  begin
    if not (DriveNum in DriveBits) then  Continue;
    DriveChar := Char(DriveNum + Ord('A'));
    if TDriveType(GetDriveType(PChar(DriveChar + ':\'))) = dtFixed then
          begin
          combobox1.items.add('Диск   '+ DriveChar+':');
          end;
  end;
Этот код добавит в комбобокс жесткие диски...
dimonbest вне форума Ответить с цитированием
Старый 14.03.2008, 17:12   #3
mihali4
*
Старожил
 
Регистрация: 22.11.2006
Сообщений: 9,201
По умолчанию

Ну, или вот несколько видоизмененный вариант:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
ld : DWORD;
i : integer;
begin
ld := GetLogicalDrives;
for i := 0 to 25 do begin
if (ld and (1 shl i)) <> 0 then
ListBox1.Items.Add(Char(Ord('A') + i) + ':\');
end;
end;
mihali4 вне форума Ответить с цитированием
Старый 12.08.2011, 19:43   #4
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

Цитата:
Сообщение от mihali4 Посмотреть сообщение
Ну, или вот несколько видоизмененный вариант:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
ld : DWORD;
i : integer;
begin
ld := GetLogicalDrives;
for i := 0 to 25 do begin
if (ld and (1 shl i)) <> 0 then
ListBox1.Items.Add(Char(Ord('A') + i) + ':\');
end;
end;
ребят подскажите, а как можно развернуть все диски, вообщем вывести все папки, подпапки на всех дисках? если такое возможно)) зарание благодарю!
hacknet вне форума Ответить с цитированием
Старый 12.08.2011, 19:52   #5
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,709
По умолчанию

FindFirst, FindNext сто раз было
p51x вне форума Ответить с цитированием
Старый 12.08.2011, 19:57   #6
hacknet
Форумчанин
 
Регистрация: 11.11.2008
Сообщений: 177
По умолчанию

а не могли бы Вы скинуть полный код? спасибо
hacknet вне форума Ответить с цитированием
Старый 12.08.2011, 20:46   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Пожалуйста:
http://yandex.ua/yandsearch?date=&te...=9953&lr=20554
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Запись CD/DVD дисков в Delphi Igoressicus Общие вопросы Delphi 10 17.07.2008 18:40
Каталогизатор дисков puma Софт 3 28.05.2008 16:05
Отключение Flash-дисков Трофимов Александр Win Api 2 25.07.2007 13:31
Трабла с иконкой дисков, XP SP-2 Алекс. Софт 21 15.12.2006 15:51