powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / поиск файла
4 сообщений из 4, страница 1 из 1
поиск файла
    #34933273
dar55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите, как реализовать поиск в подкаталогах?
Следующий поиск ищет только в папке, игнорирую подкаталоги

Set fsoSourceFolder = fsoFileSystem.GetFolder(cstr(sFilePath))

For Each fsoSourceFile In fsoSourceFolder.Files
.....
Next
...
Рейтинг: 0 / 0
поиск файла
    #34933350
Фотография klen_
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
посмотри здесь "перебор с помощью рекурсии"
тебе остаётся только добавить анализ искомого файла
...
Рейтинг: 0 / 0
поиск файла
    #34933430
Фотография VladConn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
Option Explicit

Private mobjFSO As New FileSystemObject

Private Sub Command1_Click()
    ProcessFolder "C:\Windows\"
End Sub

Private Sub ProcessFolder(ByVal pstrRootFolder As String)

    Dim objFolder As Folder
    Dim strFolder As String
    Dim strPath As String
    
    strFolder = pstrRootFolder

    For Each objFolder In mobjFSO.GetFolder(strFolder).SubFolders
        DoEvents
        strPath = mobjFSO.BuildPath(strFolder, objFolder.Name)
        List1.AddItem strPath
        ProcessFolder strPath
    Next objFolder
    
End Sub
...
Рейтинг: 0 / 0
поиск файла
    #34933523
Deggasad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Используй регулярные выражения

Код: plaintext
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.
'Выбрать файлы XLS (XLT, XLA) в каталоге и подкаталогах
'С исользованием FileSystemObject и RegExp - регулярных выражений
Private Sub CommandButton6_Click()
  Columns( 4 ).ClearContents
  GetFileListFSO ActiveWorkbook.Path, "prof.*\.xl(s|t|a)$"
End Sub
'FileSystemObject - БИБЛИОТЕКА  Microsoft Scripting Runtime
'RegExp - БИБЛИОТЕКА Microsoft VBScript Regular Expressions
Sub GetFileListFSO(ParentFolder As String, FileMask As String)
    Dim fso As New FileSystemObject
    Dim re As New RegExp
    Dim fold1 As Folder, fold2 As Folder
    Dim iFile As File
 
    Application.StatusBar = ParentFolder
    Set fold1 = fso.GetFolder(ParentFolder)
    
    For Each fold2 In fold1.SubFolders
        GetFileListFSO fold2.Path & "\", FileMask
    Next
    re.Pattern = FileMask
    re.IgnoreCase = True
    
    For Each iFile In fold1.Files
        If re.test(iFile.Name) Then
            ActiveSheet.Range("D" & Rows.Count).End(xlUp).Offset( 1 ) = iFile.Name
        End If
    Next
    Application.StatusBar = False
End Sub
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / поиск файла
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]