Thema Datum  Von Nutzer Rating
Antwort
19.12.2023 12:20:21 Markus
Solved
21.12.2023 13:34:08 Gast55777
NotSolved
21.12.2023 13:37:36 Gast25648
NotSolved
Blau Dateien in gleichnamigen Subordnern löschen
21.12.2023 13:43:47 Gast24322
NotSolved
22.12.2023 10:02:22 Markus
NotSolved
22.12.2023 11:03:45 Gast74473
NotSolved
22.12.2023 11:19:57 Gast15342
NotSolved

Ansicht des Beitrags:
Von:
Gast24322
Datum:
21.12.2023 13:43:47
Views:
140
Rating: Antwort:
  Ja
Thema:
Dateien in gleichnamigen Subordnern löschen

Falls mehrere "Vormonate" entfernt werden müssen, würde der zuvor gepostete VBA-Code einen Fehler produzieren.

Diese Variante entfernt am Ende alle Einträge aus dem String-Array "arPaths" und setzt dessen Zähler "cntPaths" wieder auf 0 zurück:

Option Explicit

Dim arPaths() As String
Dim cntPaths As Integer

Sub Aufruf()
    FilesDelete "C:\Hauptordner", "Vormonat"
End Sub

Sub FilesDelete(RootPath As String, DelPath As String)
    Dim ObjFSO As Object, ObjUPath As Object
    Dim searchPath As String
    Dim bFoundPath As Boolean
    Dim iPath As Integer, iDelPath As Integer
    Dim DoDelPath As String
    Dim ObjFilename As Object
    
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")

    SearchUPaths RootPath
        
    For iPath = cntPaths - 1 To 0 Step -1
        If Right(arPaths(iPath), Len(DelPath)) = DelPath Then
            DoDelPath = arPaths(iPath)
            For iDelPath = cntPaths - 1 To 0 Step -1
                If Left(arPaths(iDelPath) + "\", Len(DoDelPath + "\")) = DoDelPath + "\" Then
                    ' Suche Dateien im Pfad
                    Debug.Print arPaths(iDelPath)
                    For Each ObjFilename In ObjFSO.GetFolder(arPaths(iDelPath)).Files
                        ObjFilename.Delete True
                    Next
                    ObjFSO.GetFolder(arPaths(iDelPath)).Delete True
                End If
            Next
        End If
    Next
    cntPaths = 0
    ReDim arPaths(0)
End Sub

Sub SearchUPaths(Path As String)
    Dim ObjFSO As Object, ObjUPath As Object
    Dim searchPath As String
    Dim bFoundPath As Boolean
    
    Set ObjFSO = CreateObject("Scripting.FileSystemObject")
    If ObjFSO.FolderExists(Path) Then
        searchPath = Path
        For Each ObjUPath In ObjFSO.GetFolder(searchPath).SubFolders
            ReDim Preserve arPaths(cntPaths)
            arPaths(cntPaths) = ObjUPath.Path
            cntPaths = cntPaths + 1
            SearchUPaths Path:=ObjUPath.Path
        Next
    End If
End Sub

 


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
19.12.2023 12:20:21 Markus
Solved
21.12.2023 13:34:08 Gast55777
NotSolved
21.12.2023 13:37:36 Gast25648
NotSolved
Blau Dateien in gleichnamigen Subordnern löschen
21.12.2023 13:43:47 Gast24322
NotSolved
22.12.2023 10:02:22 Markus
NotSolved
22.12.2023 11:03:45 Gast74473
NotSolved
22.12.2023 11:19:57 Gast15342
NotSolved