Die Community zu .NET und Classic VB.
Menü

VB 5/6-Tipp 0492: Rekursive Verzeichnissuche mit FileSystemObject

 von 

Beschreibung 

Es gibt mehrere rekursive Verzeichnissuchen. Hier eine Varante mit dem FileSystemObject. Ein Verweis auf die Microsoft Scripting Runntime muss gesetzt sein.

Schwierigkeitsgrad:

Schwierigkeitsgrad 1

Verwendete API-Aufrufe:

keine

Download:

Download des Beispielprojektes [2,35 KB]

'Dieser Quellcode stammt von http://www.activevb.de
'und kann frei verwendet werden. Für eventuelle Schäden
'wird nicht gehaftet.

'Um Fehler oder Fragen zu klären, nutzen Sie bitte unser Forum.
'Ansonsten viel Spaß und Erfolg mit diesem Source!

'------------- Anfang Projektdatei Projekt1.vbp -------------
' Es muss ein Verweis auf 'Microsoft Scripting Runtime' gesetzt werden.

'--------- Anfang Formular "Form1" alias Form1.frm  ---------
' Steuerelement: Schaltfläche "Command1"
' Steuerelement: Beschriftungsfeld "Label2"
' Steuerelement: Beschriftungsfeld "Label1"

' Verweis : Microsoft Scripting Runntime
Option Explicit


Dim LogFile As TextStream
Dim FolderCount As Long
Dim FileCount As Long

Private Sub Command1_Click()
End
End Sub

Private Sub Form_Load()

Me.Show
Dim FS As New FileSystemObject
Const Medium = "C:\Programme"

Set LogFile = FS.CreateTextFile(App.Path & "\" & "AllFiles.log", True, True)
    SearchInFolder Medium
    LogFile.WriteBlankLines 3
    LogFile.WriteLine "Folders :   " & FolderCount & "   ;   Files :   " & FileCount
Set LogFile = Nothing
Set FS = Nothing
Label1.Caption = "Fertig!"

End Sub


Private Sub SearchInFolder(ByVal Folderspec As String)
Dim FSO As New FileSystemObject
Dim SearchFolder As Folder
Dim FD As Folder, FI As File
Dim EachFil As Files, EachFold As Folders

Set SearchFolder = FSO.GetFolder(Folderspec)
Set EachFil = SearchFolder.Files
Set EachFold = SearchFolder.SubFolders
    DoEvents

For Each FD In EachFold
    LogFile.WriteLine "Folder:    " & FD
    FolderCount = FolderCount + 1
    SearchInFolder CStr(FD)
Next FD

For Each FI In EachFil
    Label1.Caption = FI
    FileCount = FileCount + 1
    LogFile.WriteLine "File:    " & FI.Path
    DoEvents
Next FI

Set EachFil = Nothing
Set EachFold = Nothing
Set FSO = Nothing
End Sub

'---------- Ende Formular "Form1" alias Form1.frm  ----------
'-------------- Ende Projektdatei Projekt1.vbp --------------

Tipp-Kompatibilität:

Windows/VB-VersionWin32sWin95Win98WinMEWinNT4Win2000WinXP
VB4
VB5
VB6

Hat dieser Tipp auf Ihrem Betriebsystem und mit Ihrer VB-Version funktioniert?

Ja, funktioniert!

Nein, funktioniert nicht bei mir!

VB-Version:

Windows-Version:

Ihre Meinung  

Falls Sie Fragen zu diesem Artikel haben oder Ihre Erfahrung mit anderen Nutzern austauschen möchten, dann teilen Sie uns diese bitte in einem der unten vorhandenen Themen oder über einen neuen Beitrag mit. Hierzu können sie einfach einen Beitrag in einem zum Thema passenden Forum anlegen, welcher automatisch mit dieser Seite verknüpft wird.

Erweiterung des Skripts - LakyOnline123 17.08.16 09:16 8 Antworten

Archivierte Nutzerkommentare 

Klicken Sie diesen Text an, wenn Sie die 1 archivierten Kommentare ansehen möchten.
Diese stammen noch von der Zeit, als es noch keine direkte Forenunterstützung für Fragen und Kommentare zu einzelnen Artikeln gab.
Aus Gründen der Vollständigkeit können Sie sich die ausgeblendeten Kommentare zu diesem Artikel aber gerne weiterhin ansehen.

Kommentar von Sebastian am 14.06.2003 um 18:44

Super Scrpt ! Aber ist das nicht ein bischen langsam ?
Ich wollte gerade ne ganze CD einlesen, aber das hat minuten gedauert, da hab ich abgebrochen.
Vielleicht gehts schneller, wenn man erst alles nur in ne Variable einliest und erst am Ende alles speichert ?