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

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

08.02.2011, 11:55. Показов 2573. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Первый деплой
lagorue 16.01.2026
Не спеша развернул своё 1ое приложение в kubernetes. А дальше мне интересно создать 1фронтэнд приложения и 2 бэкэнд приложения развернуть 2 деплоя в кубере получится 2 сервиса и что-бы они. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь постоянного тока с R, L, C, k(ключ), U, E, J. Программа составляет систему уравнений по 1 и 2 законам Кирхгофа, решает её и находит токи на L и напряжения на C в установ. режимах до и. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Изучаю kubernetes
lagorue 13.01.2026
А пригодятся-ли мне знания kubernetes в России?
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11 — это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
Classic Notepad for Windows 11
Jel 10.01.2026
Old Classic Notepad for Windows 11 Приложение для Windows 11, позволяющее пользователям вернуть классическую версию текстового редактора «Блокнот» из Windows 10. Программа предоставляет более. . .
Почему дизайн решает?
Neotwalker 09.01.2026
В современном мире, где конкуренция за внимание потребителя достигла пика, дизайн становится мощным инструментом для успеха бренда. Это не просто красивый внешний вид продукта или сайта — это. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru