Конференция "Основная" » Перечень дисков [WinXP]
 
  • TCrash (08.04.08 20:36) [0]
    Требуется вывести в список только съемные диски. Проверка типа диска нашел - GetDriveType, но не хочется ведь делать

    for i:=byte('A') to byte('Z') do ........


    как можно получить список дисков компьютера, возможно в какой-то структуре?
  • Тыщ (08.04.08 20:39) [1]
    Во всех программах видел только GetDriveType.
    26 букв перебрать - это не так уж и много.
  • trubin © (08.04.08 21:30) [2]

    > как можно получить список дисков компьютера, возможно в
    > какой-то структуре?


    GetLogicalDriveStrings
  • Тыщ (08.04.08 21:37) [3]
    trubin ©   (08.04.08 21:30) [2]

    >GetLogicalDriveStrings

    Парсить строку с буквами, чтоб все равно перечислять в цикле?!
    Тогда уж лучше GetLogicalDrives.
  • trubin © (08.04.08 21:58) [4]

    > Парсить строку с буквами, чтоб все равно перечислять в цикле?
    > !
    > Тогда уж лучше GetLogicalDrives.


    Ему все равно надо диски в список выводить, вот буковки и потребуются.

    Впрочем из GetLogicalDrives буковки получить тоже не проблема.
  • trubin © (08.04.08 22:02) [5]
    Кроме того зачем лишний цикл. Диски из строки возвращаемой GetLogicalDriveStrings всеравно в цикле получаешь. Получил диск - проверил, всего и делов ... .
  • Тыщ (08.04.08 22:09) [6]
    trubin ©   (08.04.08 22:02) [5]

    А я говорю, GetLogicalDrives круче :)

    uses Windows;
    {$APPTYPE CONSOLE}
    var
     Drives:cardinal;
     I:integer;
    begin
     Drives:=GetLogicalDrives();
     for I:=0 to 26 do
     begin
       if Drives shr I and 1<>0 then
         Writeln('Drive '+chr(I+ord('a'))+' available');
     end;
    end.

 
Конференция "Основная" » Перечень дисков [WinXP]
Есть новые Нет новых   [134484   +49][b:0][p:0.001]