<<Джон Кларк Крейг, Джефф Уебб
Microsoft Visual Basic 5.0
Издание четвертое>> писал(а):Введите этот код в модуль новой формы, запустите программу, и в текущем рабочем каталоге появится файл FILETREE.TXT. Закончив работу, программа автоматически завершится.
- Код: Выделить всё
Option Explicit
Sub RecurseTree(CurrentPath As String)
Dim nI As Integer, nDirectory As Integer
Dim sFileName As String, sDirectoryList() As String
' сначала перечисляем все обычные файлы в текущем каталоге
sFileName = Dir(CurrentPath)
Do While sFileName <> ""
Print #1, CurrentPath & sFileName
sFileName = Dir
Loop
' теперь формируем временный список подкаталогов
sFileName = Dir(CurrentPath, vbDirectory)
Do While sFileName <> ""
' игнорируем текущий и родительские каталоги
If sFileName <> "." And sFileName <> ".." Then
' игнорируем все отличное от каталогов
If GetAttr(CurrentPath & sFileName) And vbDirectory Then
nDirectory = nDirectory + 1
ReDim Preserve sDirectoryList(nDirectory)
sDirectoryList(nDirectory) = CurrentPath & sFileName
End If
End If
sFileName = Dir
' обрабатываем другие события
DoEvents
Loop
' рекурсивно обрабатываем каждый каталог
For nI = 1 To nDirectory
RecurseTree sDirectoryList(nI) & ""
Next nI
End Sub
Private Sub Form_Load()
Dim sStartPath As String
Me.Show
Print "Working..."
Me.MousePointer = vbHourglass
sStartPath = "C:"
Open "FILETREE.TXT" For Output As #1
RecurseTree sStartPath
Close
Me.MousePointer = vbDefault
Unload Me
End Sub
Сейчас этот форум просматривают: Google-бот и гости: 15