Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Получение списка дисков
Форум программистов > Системное программирование > Delphi и Pascal > Delphi - FAQ
Jeefo
Вот прошел по книжечке поиск файлов, научился получать список файлов из директории. А про получение списка дисков увы ничего автор не написал... Просветите, подскажите функцию пожалуйста rolleyes.gif
zubr
1. Используя API-функцию GetLogicalDriveStrings определяем список всех дисков системы.
2. Используя API-функцию GetDriveType, определяем какие из них логические (отсекаем съемные диски).
Jeefo
zubr
За функции огромное спасибо, но нельзя бы примерчик небольшой с использованием и той и другой? А то из описания не пойму, какой буффер и что в него запишется :-(
zubr
procedure GetFixedDrives(var Drives:TStringList);
var
  buf, bufNew:PChar;
  s:string;
  lenBuf:Integer;
begin
lenBuf:=GetLogicalDriveStrings(0, nil);
buf:=StrAlloc(lenBuf);
try
  FillChar(buf^, lenBuf, #0);
  GetLogicalDriveStrings(lenBuf, buf);
  bufNew:=buf;
  s:=string(bufNew);
  repeat
   If GetDriveType(PChar(s))=DRIVE_FIXED then
   Drives.Add(s);
   bufNew:=PChar(Integer(StrScan(bufNew, #0)+1));
   s:=string(bufNew);
   lenBuf:=lenBuf-1-Length(s);
  until (lenBuf<=0) or (s='');
finally
  StrDispose(buf);
end;
end;
Jeefo
zubr
Спасибо, попробую разобраться smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2008 IPS, Inc.