Поделиться через


Функция DlgDirListA (winuser.h)

Заменяет содержимое списка именами подкаталогов и файлов в указанном каталоге. Список имен можно отфильтровать, указав набор атрибутов файла. При необходимости в список могут входить сопоставленные диски.

Синтаксис

int DlgDirListA(
  [in]      HWND  hDlg,
  [in, out] LPSTR lpPathSpec,
  [in]      int   nIDListBox,
  [in]      int   nIDStaticPath,
  [in]      UINT  uFileType
);

Параметры

[in] hDlg

Тип: HWND

Дескриптор диалогового окна, содержащего список.

[in, out] lpPathSpec

Тип: LPTSTR

Указатель на буфер, содержащий строку со значением NULL, которая указывает абсолютный путь, относительный путь или имя файла. Абсолютный путь может начинаться с буквы диска (например, d:) или UNC-имени (например, \<i>machinename\sharename).

Функция разделяет строку на каталог и имя файла. Функция выполняет поиск в каталоге имен, соответствующих имени файла. Если в строке не указан каталог, функция выполняет поиск в текущем каталоге.

Если строка содержит имя файла, имя файла должно содержать по крайней мере один подстановочный знак (? или *). Если строка не содержит имени файла, функция будет вести себя так, как если бы вы указали подстановочный знак звездочки (*) в качестве имени файла. Все имена в указанном каталоге, которые соответствуют имени файла и имеют атрибуты, заданные параметром uFileType, добавляются в список.

[in] nIDListBox

Тип: int

Идентификатор списка в диалоговом окне hDlg . Если этот параметр равен нулю, DlgDirList не пытается заполнить список.

[in] nIDStaticPath

Тип: int

Идентификатор статического элемента управления в диалоговом окне hDlg . DlgDirList задает текст этого элемента управления для отображения текущего диска и каталога. Этот параметр может быть равен нулю, если вы не хотите отображать текущий диск и каталог.

[in] uFileType

Тип: UINT

Указывает атрибуты файлов или каталогов, добавляемых в список. Этот параметр может быть одним или несколькими из следующих значений.

Значение Значение
DDL_ARCHIVE
Включает архивные файлы.
DDL_DIRECTORY
Включает подкаталоги. Имена подкаталогов заключаются в квадратные скобки ([ ]).
DDL_DRIVES
Все сопоставленные диски добавляются в список. Диски перечислены в формате [- x-], где x — буква диска.
DDL_EXCLUSIVE
Включает только файлы с указанными атрибутами. По умолчанию файлы для чтения и записи отображаются, даже если DDL_READWRITE не указан.
DDL_HIDDEN
Включает скрытые файлы.
DDL_READONLY
Включает файлы, доступные только для чтения.
DDL_READWRITE
Включает файлы для чтения и записи без дополнительных атрибутов. Это параметр по умолчанию.
DDL_SYSTEM
Включает системные файлы.
DDL_POSTMSGS
Если этот параметр задан, DlgDirList использует функцию PostMessage для отправки сообщений в поле списка. Если значение не задано, DlgDirList использует функцию SendMessage .

Возвращаемое значение

Тип: int

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция выполняется неудачно, возвращается нулевое значение. Например, если строка, указанная lpPathSpec , не является допустимым путем, функция завершается ошибкой. Чтобы получить расширенные сведения об ошибке, вызовите функцию .

Комментарии

Если lpPathSpec указывает каталог, DlgDirListComboBox перед заполнением списка изменяет текущий каталог на указанный каталог. Текст статического элемента управления, определяемого параметром nIDStaticPath , имеет имя нового текущего каталога.

DlgDirList отправляет сообщения LB_RESETCONTENT и LB_DIR в список.

Если uFileType содержит флаг DDL_DIRECTORY, а lpPathSpec указывает каталог первого уровня, например C:\TEMP, в списке всегда будет содержаться запись ".." для корневого каталога. Это верно, даже если корневой каталог содержит скрытые или системные атрибуты, а флаги DDL_HIDDEN и DDL_SYSTEM не указаны. Корневой каталог тома NTFS содержит скрытые и системные атрибуты.

В списке каталогов отображаются длинные имена файлов, если таковые есть.

Примеры

Примеры см. в следующих разделах: Создание списка каталогов в списке с одним выбором и Создание списка с множественным выбором.

Примечание

Заголовок winuser.h определяет DlgDirList в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора UNICODE. Сочетание использования псевдонима, не зависящий от кодировки, с кодом, не зависящим от кодировки, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в разделе Соглашения для прототипов функций.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 [только классические приложения]
Целевая платформа Windows
Header winuser.h (включая Windows.h)
Библиотека User32.lib
DLL User32.dll

См. также раздел

DlgDirListComboBox

DlgDirSelectComboBoxEx

DlgDirSelectEx

Справочные материалы