Функция GetLogicalDriveStrings

Declare Function GetLogicalDriveStrings Lib "kernel32" Alias "GetLogicalDriveStringsA" (ByVal nBufferLength As Long, ByVal lpBuffer As String) As Long

GetLogicalDriveStrings определяет имеющие силу логические диски на компьютере и размещает их названия корневых каталогов в строку lpBuffer. Каждое имя корневого каталога в буфере отделено нулевым символом и полными строковыми концами в двух нулевых символах. Например, если существуют только A: и C: , строка будет " a: \ (Null) c: \ (Null) с еще одним завершающим строку Null", где Null представляет нулевой символ. Функция возвращает 0, если произошла ошибка, в успешном случае возвращается длина строки, помещенной в lpBuffer

Параметры

nBufferLength
Длина строки в буфере lpBuffer
lpBuffer
Строка, получающая имена всех логических дисков

Пример

' Перечисляем имена всех корневых каталогов
' Так как каждый вход в строке берет
' четыре символа(три для имени и один для пустого
' указателя), мы можем  рассчитать длину
' строки. Это освобождает нас от проблем
' относительно пустых указателей
Dim drivenames As String  ' получаем имена дисков
Dim thisdrive As String  ' буфер для имени диска
Dim c As Long  ' счетчик
Dim slength As Long  ' длина возвращаемой строки

' Создаем место в буфере для имен дисков
drivenames = Space(255)  ' должно хватить
' Получаем имена всех дисков
slength = GetLogicalDriveStrings(255, drivenames)  
' считаем по 4 символа для извлечения имен каждого диска
For c = 1 To slength Step 4
' извлекаем 3-х символьную строку X:\ (где X-буква диска)
  thisdrive = Mid(drivenames, c, 3)
  Debug.Print thisdrive  ' показываем имена дисков
Next c

Смотри также

GetLogicalDrives

Категория

Файлы