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

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

30.08.2013, 10:32. Показов 21386. Ответов 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
Модератор
10067 / 3912 / 885
Регистрация: 22.02.2013
Сообщений: 5,863
Записей в блоге: 79
30.04.2026, 14:37
Студворк — интернет-сервис помощи студентам
На новых системах лучше делать через IFileDialog.
Миниатюры
Окно выбора директории (папки)  
2
 Аватар для Argus19
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
03.05.2026, 11:53
The trick, IFileDialog возвращает СОМ объект. Как его приручить?
0
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
03.05.2026, 16:37
Я IFileDialog диалог не использую так как он не совместим с XP а я всегда пишу XP-совместимые программы. Единственный плюс IFileDialog в том что там можно получать больше 10 тысяч выделенных файлов, в отличии от APi-варианта.
0
 Аватар для Argus19
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
03.05.2026, 17:17
Цитата Сообщение от HackerVlad Посмотреть сообщение
я всегда пишу XP-совместимые программы

Не по теме:

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


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

oleexp.tlb by fafalone? С ней будет проще реализовать IFileDialog.
0
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
03.05.2026, 17:56
Цитата Сообщение от Argus19 Посмотреть сообщение
IFileDialog
IFileDialog от fafalone очень легко найти на иностранном форуме или здесь на киберфоруме наверняка есть также и хороший вариант от The Trick
0
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
04.05.2026, 11:12
Цитата Сообщение от Argus19 Посмотреть сообщение
oleexp.tlb
Это то что ты ищешь о чём писал тут The Trick нужный тебе файл уже внутри архива.
Вложения
Тип файла: zip IFileDialog_Rev4.zip (471.3 Кб, 5 просмотров)
1
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
04.05.2026, 11:18
Только я не понимаю чем этот фафалоновский пример лучше моего: Готовые решения и полезные коды на Visual Basic 6.0
0
 Аватар для Argus19
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
04.05.2026, 16:07
Цитата Сообщение от HackerVlad Посмотреть сообщение
Только я не понимаю чем этот фафалоновский пример лучше моего
Тем, что используется другой вариант.
Кроме вашего модуля существует ещё несколько, делающих тоже самое.
Это всего-лишь разнообразие. Т.с. на все случаи жизни. Пусть вариантов будет много.
1
 Аватар для Argus19
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
04.05.2026, 17:53
Цитата Сообщение от HackerVlad Посмотреть сообщение
файл уже внутри архива.
Спасибо.
Вот ещё вариант:
Вложения
Тип файла: zip Диалог.zip (42.7 Кб, 8 просмотров)
1
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
04.05.2026, 18:13
Цитата Сообщение от Argus19 Посмотреть сообщение
Вот ещё вариант
Откуда вы взяли эту DLL))) прикольный вариантик конечно)
0
Заблокирован
04.05.2026, 18:28
"Окно выбора директории (папки)"
Главная проблема современности
0
 Аватар для Argus19
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
04.05.2026, 18:33
Цитата Сообщение от HackerVlad Посмотреть сообщение
Откуда вы взяли эту DLL))) прикольный вариантик конечно)
ИИ помог.
Что странно, не смотря на то, что в .dll статически прикомпоновано всё, на виртуалке XP библиотек не видит. В Win7 всё летает.
0
Вернулся
 Аватар для HackerVlad
1754 / 650 / 45
Регистрация: 10.09.2021
Сообщений: 2,807
04.05.2026, 18:35
Цитата Сообщение от Argus19 Посмотреть сообщение
XP библиотек не видит
Так IFileDialog не работает же в XP. Если библиотека обращается к IFileDialog то работать в XP не будет конечно же. Я не знаю правда как там эта DLL устроена, к чему там обращается и откуда вообще эта DLL вообще взялась? Неужели ИИ сам генерировал целую библиотеку DLL?
0
 Аватар для Argus19
1731 / 475 / 78
Регистрация: 24.09.2017
Сообщений: 2,567
Записей в блоге: 25
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
Ответ Создать тему
Новые блоги и статьи
мат медиц модель 30. презентация проекта
anaschu 27.08.2026
хоп хоп хоп хидахоп, а я кладую))
Как у меня протекала болезнь
zorxor 27.08.2026
Здравствуйте, друзья! Эта запись блога предназначена именно для вас - для моих дорогих друзей, которые знали меня лично. Чтобы ответить на вопрос - а что же со мной произошло на самом деле? Я учился. . .
Нашел вот забавное видео о измерениях. Лучшее что я видел на эту тему
kumehtar 26.08.2026
ILETXiw9bMQ Основная суть и тезисы по измерениям: 0D (Нулевое измерение): точка, не имеющая длины, ширины, высоты или объема. Объект не может перемещаться в 0D. 1D (Первое измерение):. . .
[EasyBuilder Pro] Памятка по разработке для панелей Weintek
ФедосеевПавел 26.08.2026
Памятка по разработке для панелей Weintek ВВЕДЕНИЕ Ранее, при реализации проектов основное внимание уделял разработке управляющей программы для контроллера, а панели оператора доставалось время. . .
Модель по догадкам
anaschu 25.08.2026
Прошло две недели. Я уже рассказывал, как разговаривал с сотрудниками у сортировки и как понял, что главная ветка — не про приёмку, а про отбор. Но тогда я думал, что понял механику. На этой неделе я. . .
Запись в регистр сведений независимо от заполненности табличной части
Maks 25.08.2026
Реализация из решения ниже выполнена на нетиповом документе с несколькими табличными частями, разработанного в КА2. Задача: Обеспечить запись документа в регистр сведений независимо от. . .
Ноутбук Альфария
kumehtar 24.08.2026
Встретился тут в сети ноутбук Альфария, примарха Альфа-Легиона. Хотя возможно, это ноутбук Омегона, разумеется. Ну как вам?
Мастера простых решений
DevAlt 23.08.2026
В сишарп стэках winforms, да и wpf существует сложная система связывания источниках данных и элементов формы(текстовые поля и метки), опирается все это на технологию событий и мета. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru