Список всех доступных дисков можно получить функцией GetLogicalDriveStrings, объявленной в VCL Win32 в модуле Windows следующим образом:
function
GetLogicalDriveStrings(nBufferLength: DWORD; lpBuffer:
PAnsiChar): DWORD; stdcall;
В VCL .NET в модуле Borland.VcLWindows объявление функции выглядит так:
function GetLogicalDriveStrings(nBufferLength: DWORD;
[out] lpBuffer: TBytes): DWORD;
Параметр nBufferLength определяет длину буфера lpBuffer, в который функция заносит список дисков. Функция возвращает длину буфера, которая нужна была бы для размещения всей информации. Если возвращенная длина больше nBufferLength, значит, список не удалось занести полностью. Если функция вернула 0, значит, произошла ошибка.
Список размещается в буфере в виде строк, обозначающих корневые каталоги.Например, "С:\". Отдельные строки отделяются друг от друга нулевыми символами. В конец списка заносится два нулевых символа. Обратите внимание на то, что в VCL Win32 параметр lpBuffer является указателем на строку, а в VCL .NET этот параметр — массив байтов. Каждые 2 байта соответствуют одному символу типа Char. Так что при необходимости иметь в результате вызова функции строку, ее еще надо сформировать из массива байтов. Определить тип конкретного диска можно функцией GetDriveType,
...
Читать всю статью»