Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.64/92: Рейтинг темы: голосов - 92, средняя оценка - 4.64
 Аватар для Bati4eli
617 / 17 / 8
Регистрация: 05.05.2012
Сообщений: 221
Записей в блоге: 11

Окно выбора директории (папки)

30.08.2013, 10:32. Показов 21639. Ответов 33
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем привет!
Давно ищу в интернете нормальное диалоговое окно выбора директории (по типа того что предоставляет CommonDialog для выбора файлов). Кстати на VBA такая вещь присутствует!
Вот пример на VBA :
Кликните здесь для просмотра всего текста

Visual Basic
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
Public Enum SpecialFolderIDs
    sfidDESKTOP = &H0   'рабочий стол
    sfidPROGRAMS = &H2
    sfidPERSONAL = &H5
    sfidFAVORITES = &H6
    sfidSTARTUP = &H7
    sfidRECENT = &H8
    sfidSENDTO = &H9
    sfidSTARTMENU = &HB
    sfidDESKTOPDIRECTORY = &H10
    sfidNETHOOD = &H13
    sfidFONTS = &H14
    sfidTEMPLATES = &H15
    sfidCOMMON_STARTMENU = &H16
    sfidCOMMON_PROGRAMS = &H17
    sfidCOMMON_STARTUP = &H18
    sfidCOMMON_DESKTOPDIRECTORY = &H19
    sfidAPPDATA = &H1A
    sfidPRINTHOOD = &H1B
    sfidProgramFiles = &H10000
    sfidCommonFiles = &H10001
End Enum
Private Declare Function SHGetSpecialFolderLocation Lib "shell32" (ByVal hwndOwner As Long, ByVal nFolder As SpecialFolderIDs, ByRef pIdl As Long) As Long
Private Declare Function SHGetPathFromIDListA Lib "shell32" (ByVal pIdl As Long, ByVal pszPath As String) As Long
Const NOERROR = 0
Dim sPath As String
Dim IDL As Long
Dim strPath As String
Dim lngPos As Long
 
 
Public Function GetFolderPath(Optional ByVal Title As String = "Выберите папку", Optional ByVal InitialPath As String = "c:\") As String
' функция выводит диалоговое окно выбора папки с заголовком Title,
' начиная обзор диска с папки InitialPath
' возвращает полный путь к выбранной папке, или пустую строку в случае отказа от выбора
Dim PS As String: PS = Application.PathSeparator
With Application.FileDialog(msoFileDialogFolderPicker)
    If Not Right$(InitialPath, 1) = PS Then InitialPath = InitialPath & PS
    .ButtonName = "Выбрать": .Title = Title: .InitialFileName = InitialPath
    If .Show <> -1 Then Exit Function
    GetFolderPath = .SelectedItems(1)
    If Not Right$(GetFolderPath, 1) = PS Then GetFolderPath = GetFolderPath & PS
End With
End Function
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
30.08.2013, 10:32
Ответы с готовыми решениями:

Как открыть окно для выбора папки?
Можно ли из программы открыть окно с содержимым определённой папки? Нужно обычное окно папки, а не запустить Проводник.

Стандартный диалог выбора директории
Подскажите по сабжу плиз. Есть ли оный в ВБ 6.0??? и как его вызвать если он есть? или надо писать свой?

Окно выбора директории и файлов
Здравствуйте, уважаемые форумчане. Подскажите пожалуйста, есть ли в VBA подобные объекты? ...

33
Модератор
10069 / 3914 / 886
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
30.04.2026, 14:37
Студворк — интернет-сервис помощи студентам
На новых системах лучше делать через IFileDialog.
Миниатюры
Окно выбора директории (папки)  
2
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
03.05.2026, 11:53
The trick, IFileDialog возвращает СОМ объект. Как его приручить?
0
Вернулся
 Аватар для HackerVlad
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
03.05.2026, 16:37
Я IFileDialog диалог не использую так как он не совместим с XP а я всегда пишу XP-совместимые программы. Единственный плюс IFileDialog в том что там можно получать больше 10 тысяч выделенных файлов, в отличии от APi-варианта.
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
03.05.2026, 17:17
Цитата Сообщение от HackerVlad Посмотреть сообщение
я всегда пишу XP-совместимые программы

Не по теме:

Мне самому нравится Win XP. Яркие и насыщенные цвета. Все ОС, появившиеся позднее, какие-то мыльные.


У меня пропал доступ ко многим иностранным, сугубо техническим сайтам.
HackerVlad, у вас нет библиотеки типов

oleexp.tlb by fafalone? С ней будет проще реализовать IFileDialog.
0
Вернулся
 Аватар для HackerVlad
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
03.05.2026, 17:56
Цитата Сообщение от Argus19 Посмотреть сообщение
IFileDialog
IFileDialog от fafalone очень легко найти на иностранном форуме или здесь на киберфоруме наверняка есть также и хороший вариант от The Trick
0
Вернулся
 Аватар для HackerVlad
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
04.05.2026, 11:12
Цитата Сообщение от Argus19 Посмотреть сообщение
oleexp.tlb
Это то что ты ищешь о чём писал тут The Trick нужный тебе файл уже внутри архива.
Вложения
Тип файла: zip IFileDialog_Rev4.zip (471.3 Кб, 5 просмотров)
1
Вернулся
 Аватар для HackerVlad
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
04.05.2026, 11:18
Только я не понимаю чем этот фафалоновский пример лучше моего: Готовые решения и полезные коды на Visual Basic 6.0
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
04.05.2026, 16:07
Цитата Сообщение от HackerVlad Посмотреть сообщение
Только я не понимаю чем этот фафалоновский пример лучше моего
Тем, что используется другой вариант.
Кроме вашего модуля существует ещё несколько, делающих тоже самое.
Это всего-лишь разнообразие. Т.с. на все случаи жизни. Пусть вариантов будет много.
1
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
04.05.2026, 17:53
Цитата Сообщение от HackerVlad Посмотреть сообщение
файл уже внутри архива.
Спасибо.
Вот ещё вариант:
Вложения
Тип файла: zip Диалог.zip (42.7 Кб, 10 просмотров)
1
Вернулся
 Аватар для HackerVlad
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
04.05.2026, 18:13
Цитата Сообщение от Argus19 Посмотреть сообщение
Вот ещё вариант
Откуда вы взяли эту DLL))) прикольный вариантик конечно)
0
Заблокирован
04.05.2026, 18:28
"Окно выбора директории (папки)"
Главная проблема современности
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
04.05.2026, 18:33
Цитата Сообщение от HackerVlad Посмотреть сообщение
Откуда вы взяли эту DLL))) прикольный вариантик конечно)
ИИ помог.
Что странно, не смотря на то, что в .dll статически прикомпоновано всё, на виртуалке XP библиотек не видит. В Win7 всё летает.
0
Вернулся
 Аватар для HackerVlad
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
04.05.2026, 18:35
Цитата Сообщение от Argus19 Посмотреть сообщение
XP библиотек не видит
Так IFileDialog не работает же в XP. Если библиотека обращается к IFileDialog то работать в XP не будет конечно же. Я не знаю правда как там эта DLL устроена, к чему там обращается и откуда вообще эта DLL вообще взялась? Неужели ИИ сам генерировал целую библиотеку DLL?
0
 Аватар для Argus19
1732 / 476 / 78
Регистрация: 24.09.2017
Сообщений: 2,573
Записей в блоге: 27
04.05.2026, 18:43
Цитата Сообщение от HackerVlad Посмотреть сообщение
Так IFileDialog не работает же в XP. Если библиотека обращается к IFileDialog то работать в XP не будет конечно же. Я не знаю правда как там эта DLL устроена, к чему там обращается и откуда вообще эта DLL вообще взялась? Неужели ИИ сам генерировал целую библиотеку DLL?
В библиотеку статически включено всё, что нужно для работы.
Да. ИИ сам сгенерировал на основе кучи прочитанных сайтов. Но не с первого раза.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
04.05.2026, 18:43

Диалоговое окно выбора как папки так и файлов
Можно ли обыграть ситуацию с диалоговыми окнами: Application.FileDialog(msoFileDialogFilePicker) - выбор файла(-ов) ...

Вызвать стандартный диалог выбора директории
как вызвать стандартный диалог выбора директории. очевидно д б api функция

Нужен диалог выбора диска (директории), а не файла
Задача: на форме есть Label1, нужно выбрать директорию на диске, и присвоить этот путь LABEL1 может поможет выводит все диалоги ...

Activex компонент для выбора файла из директории
Нужно закачивать данные из файла, пользователь должен выбирать файл. для этого ищу Activex компонент для выбора файла из директории ...

Стандартный объект выбора директории или файла
Подскажите есть ли в VBA стандартный обьект который можна вставить в форму, и с помощью которого можно производить выбор директории или...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
34
Ответ Создать тему
Новые блоги и статьи
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы. Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version 1. 2003 - 06 - Designing Virtual Worlds (1st Edition) Автор: Richard A. Bartle | Объем: 768 стр. Ссылки: Amazon . . .
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров". Задача: Запрет инициалов. Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . . Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru