Форум программистов, компьютерный форум, киберфорум
Visual Basic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 5.00/13: Рейтинг темы: голосов - 13, средняя оценка - 5.00
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 27

Как узнать имя и путь всех файлов и подпапок находящихся в папке?

08.02.2011, 11:55. Показов 2616. Ответов 14
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Подсажите как можно узнать имя и путь всех файлов и подпапок находящихся в папке.
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.02.2011, 11:55
Ответы с готовыми решениями:

Как создать разом ярлыки для всех папок и файлов, находящихся в определённой папке?
Есть папка в ней ещё много папок и под папок и разные файлы. Как разом создать ярлыки для все папок и файлов? Чтобы получить своего...

Открытие всех файлов находящихся в папке
Как открывать с помощью VBA все файлы Exсel находящиеся в указанной папке? Я пользуюсь скриптом, в котором нужно отдельно прописывать...

Обработка всех файлов находящихся в папке
Подскажите пожайлуста как организовать обработку большого количества файлов в папке. Необходимо укзать только адрес директории чтобы...

14
Comanche
08.02.2011, 12:03
Функция Dir плюс рекурсия.
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 27
08.02.2011, 12:12  [ТС]
А можно поподробней, каким образом?
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
08.02.2011, 12:57
см. как один из вариантов:
http://www.relib.com/forums/topic.asp?id=845563
Однако...он многое может просветить на твой вопрос, если ты наблюдательный !
0
0 / 0 / 0
Регистрация: 08.11.2010
Сообщений: 27
08.02.2011, 13:59  [ТС]
Спасибочки, посмотрим.
0
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
08.02.2011, 14:54
Да, на мой взгляд тоже лучше использовать FileSystemObject...
0
Messir
08.02.2011, 21:28
А вот на мой взгляд - лучше FileSystemObjects не использовать...
Зачем лишние тормоза? Ведь есть FindFirstFile/FindNextFile! К тому же, у этих функций есть некоторые дополнительные плюшки, типа поддержки длинных путей (чего нельзя гарантировать для FSO)
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
09.02.2011, 07:14
Messir... а кусочек кода 'моно'. Тогда яснее будет.
А то я там поторопился сослаться на чужой код, хотя сам не проверял...
Ну и еще есть много исходников поиска файла. Тоже автору нужно попробовать приспособить под свою задачу.
0
Messir
09.02.2011, 20:16
Ну, что-то типа этого:
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
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
Private Declare Function FindFirstFile Lib 'kernel32' Alias 'FindFirstFileA' (ByVal lpFileName As String, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindNextFile Lib 'kernel32' Alias 'FindNextFileA' (ByVal hFindFile As Long, lpFindFileData As WIN32_FIND_DATA) As Long
Private Declare Function FindClose Lib 'kernel32' (ByVal hFindFile As Long) As Long
 
Const MAX_PATH = 260
Const INVALID_HANDLE_VALUE = -1
 
Private Type FILETIME
    dwLowDateTime As Long
    dwHighDateTime As Long
End Type
 
Private Type WIN32_FIND_DATA
    dwFileAttributes As Long
    ftCreationTime As FILETIME
    ftLastAccessTime As FILETIME
    ftLastWriteTime As FILETIME
    nFileSizeHigh As Long
    nFileSizeLow As Long
    dwReserved0 As Long
    dwReserved1 As Long
    cFileName As String * MAX_PATH
    cAlternate As String * 14
End Type
 
Function StripNulls(OriginalStr As String) As String
    If (InStr(OriginalStr, Chr(0)) > 0) Then
        OriginalStr = Left(OriginalStr, InStr(OriginalStr, Chr(0)) - 1)
    End If
    StripNulls = OriginalStr
End Function
 
Sub EnumFilesAPI(ByVal path As String, ByVal SearchStr As String)
    Dim FileName As String
    Dim hSearch As Long
    Dim WFD As WIN32_FIND_DATA
    Dim Cont As Integer
    If Right(path, 1) <> ' ' Then path = path & ' '
    hSearch = FindFirstFile(path & SearchStr, WFD)
    Cont = True
    If hSearch <> INVALID_HANDLE_VALUE Then
        While Cont
            FileName = StripNulls(WFD.cFileName)
            If (FileName <> '.') And (FileName <> '..') Then
                List1.AddItem path & FileName
            End If
            Cont = FindNextFile(hSearch, WFD)
        Wend
        FindClose hSearch 
    End If
End Sub
 
Sub Command1_Click()
    Dim SearchPath As String, FindStr As String
    Dim FileSize As Long
    Dim NumFiles As Integer, NumDirs As Integer
    Screen.MousePointer = vbHourglass
    List1.Clear
    SearchPath = Text1.Text
    FindStr = Text2.Text
    EnumFilesAPI SearchPath, FindStr
    Screen.MousePointer = vbDefault
End Sub
P.S. Почти копипаст из ApiGuide
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
09.02.2011, 22:47
ээээх))) любитель API ))))
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
10.02.2011, 07:15
А зря Алексей :)
Вот для меня очень хорошо...я имею ввиду, которые чайники. Это т.с. кирпичики. Вот я этот код взял и прокрутил - работает, да еще как хорошо. И выдумывать не нужно. А если что-то нужно крутое... то это как отправная точка: - используй отдельные свойства, кто против.
Т.е. незнание API из-за недолюбливания - это не решение процесса программирования.
0
Comanche
10.02.2011, 14:33
имхо, без АПИ бэйсик даёт разработчику КРАЙНЕ ограниченные возможности... кроме того, если ряд бэйсиковских функций переделать через АПИ - то можно получить весьма ощутимый выигрыш в скорости, а в серьёзных приложениях это очень и очень критично.

Например, конкатенация строк через API работает как минимум в пять раз быстрее, чем запись вида 'st = st & newSt' - кому интересно, поищите на VBNET.RU файл GlobalAlloc.zip. Ну а работу с инет-протоколами через API вообще нельзя сравнивать со всякими Inet-контролами, Winsock-контролом и т.д.! Если перечислять всё, что можно сделать полезного в VB-приложении ТОЛЬКО посредством API - то получится агромаднейший список...
2 / 2 / 1
Регистрация: 18.10.2007
Сообщений: 1,748
10.02.2011, 15:54
Да я не о том)
Я с этим не спорю и сам против API ничего имею.
Без него возможности бэйсика сильно ограничены.

Просто иногда имеет смысл использовать готовые контролы/классы.
Далеко не всегда необходима сверхбыстрая производимость. А решение достигается быстрее.
0
0 / 0 / 0
Регистрация: 28.09.2010
Сообщений: 139
10.02.2011, 16:11
Прости, я так хотел сказать, но нехватило ума ::)
0
Сумрак
11.02.2011, 06:34
Доброго времени суток всем.
Можно я тоже выскажусь? :-)
Вы все правы. и Апишки нужны и простой код, главное - какая задача стоит.
Я придерживаюсь таких же взглядов как Alexey Spirin. Зачем изобретать велосипед. Если че можно сделать средствми VB я их и использую. Ведь по своей натуре VB и создавался как язык для БЫСТРОГО создания пользовательских приложений для Винды. А там где быстрота то приходится чемто жертвовать. Ну АПИ... это особый разговор :-)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
11.02.2011, 06:34
Помогаю со студенческими работами здесь

Переименовать папку в имя, являющееся частью имени одного из файлов, находящихся в этой папке
Прошу помощи... Имеется около тысячи папок с разными именами. В каждой папке по несколько pdf файлов с именами: Фамилия может...

Поиск имен всех файлов, находящихся в определенной папке
Народ как записать (например в Memo) имена всех файлов, находящихся в определеннои папке??

Узнать список подпапок в папке
Здраствуйте. подскажите, как узнать имена всех подпапок в определённой папке? И записать их(имена подпапок) в переменные или масив. Заранее...

Узнать имена всех txt файлов в папке
нужно прочитать содержимое всех тхт файлов в папке то есть в идеале получить ArrayList с именами файлов открывать планирую через ...

API, чтоб узнать имена с расширениями всех файлов в папке
С помощью какой (каких) Api-функций можно узнать имена с расширениями всех файлов в папке


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

Или воспользуйтесь поиском по форуму:
15
Ответ Создать тему
Новые блоги и статьи
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
Горе от ума
kumehtar 07.04.2026
Эта мне ментальная установка, что вот прямо сейчас, мол, мне для полного счастья не хватает (нужное вписать), и когда я этого достигну - тогда и полный кайф. Одна из самых сильных ловушек на пути. . . .
Использование значений реквизитов справочника в документе, с определенными условиями и правами
Maks 07.04.2026
1. Контроль срока действия договора Алгоритм из решения ниже реализован на примере нетипового документа "ЗаявкаНаРаботу", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если. . .
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru