Thema Datum  Von Nutzer Rating
Antwort
26.12.2017 11:13:05 Søren
NotSolved
Blau Ordner durchsuchen und Dateien auslesen
28.12.2017 01:31:58 Ben
NotSolved
28.12.2017 08:08:34 Soeren
NotSolved
28.12.2017 08:50:04 Søren
NotSolved
30.12.2017 10:42:58 Ben
NotSolved
30.12.2017 13:39:02 Gast15212
NotSolved

Ansicht des Beitrags:
Von:
Ben
Datum:
28.12.2017 01:31:58
Views:
580
Rating: Antwort:
  Ja
Thema:
Ordner durchsuchen und Dateien auslesen

Hallo,

eine mögliche Lösung schaut so aus...

Modul:

Sub searchStart()
    Dim myFileSearch As New clsFilesSearch
    Dim Files() As String
    Files = myFileSearch.SearchFiles("C:\Temp\", ".txt$")
    Stop
End Sub

Klasse clsFileSearch:

Option Explicit

Private Enum myStatus
    Found = 1
    notExists = 2
    Error = 3
End Enum

Public Function SearchFiles(ByVal sPath As String, searchFilename As String) As String()
    Dim oFSO As Object
    Dim oFolder As Object
    Dim oSubFolder As Object
    Dim oFile As Object
    Dim Out() As String
    Dim iPos As Integer
    Dim myResult As myStatus
    iPos = -1
    Set oFSO = CreateObject("Scripting.FileSystemObject")
    Set oFolder = oFSO.GetFolder(sPath)
          
    For Each oSubFolder In oFolder.subfolders
    
        'Alle Dateien auflisten
        For Each oFile In oSubFolder.Files
            myResult = match(oFile.Name, searchFilename)
            
            If myResult = myStatus.Found Then
                iPos = iPos + 1
                ReDim Preserve Out(iPos)
                Out(iPos) = oSubFolder.Path & "\" & oFile.Name
            ElseIf myResult = myStatus.Error Then
                Exit For
            End If
        
        Next oFile
             
        If myResult = myStatus.Error Then Exit For
    Next oSubFolder
     
     Set oFSO = Nothing
     Set oFile = Nothing
     Set oFolder = Nothing
     Set oSubFolder = Nothing
     SearchFiles = Out
End Function

Private Function match(ByRef Text As String, ByRef Search As String) As myStatus
    On Error GoTo Err_Handler
    Dim myRegEx As Object
    Set myRegEx = CreateObject("VBScript.RegExp")
    With myRegEx
        .IgnoreCase = True
        .Global = True
        .Pattern = Search
        If myRegEx.Test(Text) Then
            match = myStatus.Found
        Else
            match = myStatus.notExists
        End If
    End With
Err_Exit:
    Exit Function
Err_Handler:
    Err.Clear
    match = myStatus.Error
    Resume Err_Exit
End Function

 

Im Modul wird das Suchbegriff als Regular Expression angegeben.

Die gefundenen Dateien werden im Array zurückgegeben.

LG, Ben


Ihre Antwort
  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen
Thema: Name: Email:



  • Bitte beschreiben Sie Ihr Problem möglichst ausführlich. (Wichtige Info z.B.: Office Version, Betriebssystem, Wo genau kommen Sie nicht weiter)
  • Bitte helfen Sie ebenfalls wenn Ihnen geholfen werden konnte und markieren Sie Ihre Anfrage als erledigt (Klick auf Häckchen)
  • Bei Crossposting, entsprechende Links auf andere Forenbeiträge beifügen / nachtragen
  • Codeschnipsel am besten über den Code-Button im Text-Editor einfügen
  • Die Angabe der Emailadresse ist freiwillig und wird nur verwendet, um Sie bei Antworten auf Ihren Beitrag zu benachrichtigen

Thema Datum  Von Nutzer Rating
Antwort
26.12.2017 11:13:05 Søren
NotSolved
Blau Ordner durchsuchen und Dateien auslesen
28.12.2017 01:31:58 Ben
NotSolved
28.12.2017 08:08:34 Soeren
NotSolved
28.12.2017 08:50:04 Søren
NotSolved
30.12.2017 10:42:58 Ben
NotSolved
30.12.2017 13:39:02 Gast15212
NotSolved