Метод поиска файлов и папок в Visual Basic - VB
Формулировка задачи:
Вообщем с этим я пытаюсь разобраться уже 3ий час. Ни чего не получается.
Понимаю все банально, мол есть хэлп. Так вот хэлпа нет .
Буду очень признателен, если кто нить поможет. Спасибо!
Решение задачи: «Метод поиска файлов и папок в Visual Basic»
textual
Листинг программы
- Option Explicit
- Public FullFileName() As String 'Массив полных путей найденных файлов
- Public fCount As Long 'Количество найденных по маске файлов
- Sub Find_Test()
- Dim Drv As String
- Dim Pth As String
- Dim fFile As String
- Dim I As Long
- ReDim FullFileName(1 To 100) ' Для увеличения быстродействия увеличиваем массив с шагом в 100
- fCount = 0 ' Инициализация счетчика
- Drv = 'C' ' Поиск на диске C:
- Pth = ' ' ' Путь, с которого начинается поиск
- fFile = '*.ba?' ' Маска для поиска
- ChDrive Drv ' Установка текущего диска...
- Call FindFile(fFile, Pth) ' и старт рекурсивного поиска
- MsgBox 'Поиск по маске ''' & fFile & ''' завершен !' & vbCr & _
- 'найдено ' & fCount & ' файлов.', vbOKOnly Or vbInformation, 'Диск ' & Left(CurDir, 2)
- For I = 1 To fCount
- Debug.Print FullFileName(I) ' выводим массив
- Next I
- End Sub
- Sub FindFile(fFile As String, Pth As String)
- Dim AllDirs() As String
- ReDim AllDirs(1 To 100)
- Dim I As Integer
- Dim M As Integer
- Dim strFile As String
- Dim Cur As String
- ChDir Pth
- Cur = CurDir
- If Not Right(Cur, 1) = ' ' Then Cur = Cur & ' '
- strFile = Dir(fFile, vbHidden Or vbSystem Or vbReadOnly)
- Do Until Len(strFile) = 0
- fCount = fCount + 1
- M = UBound(FullFileName())
- If fCount > M Then ReDim Preserve FullFileName(1 To M + 100)
- FullFileName(fCount) = Cur & strFile
- strFile = Dir()
- Loop
- strFile = Dir('*.*', vbHidden Or vbSystem Or vbReadOnly Or vbDirectory)
- Do Until Len(strFile) = 0
- If GetAttr(strFile) = vbDirectory Then
- If strFile <> '.' And strFile <> '..' Then
- I = I + 1
- M = UBound(AllDirs())
- If I > M Then ReDim Preserve AllDirs(1 To M + 100)
- AllDirs(I) = strFile
- End If
- End If
- strFile = Dir()
- Loop
- M = I
- For I = 1 To M
- Call FindFile(fFile, AllDirs(I))
- Next I
- ChDir Cur & '..'
- End Sub
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д