Live-Forum - Die aktuellen Beiträge
Anzeige
Archiv - Navigation
1284to1288
Aktuelles Verzeichnis
Verzeichnis Index
Übersicht Verzeichnisse
Vorheriger Thread
Rückwärts Blättern
Nächster Thread
Vorwärts blättern
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Löschen aller Dateil im Auswahlverzeichnis

Löschen aller Dateil im Auswahlverzeichnis
17.11.2012 17:43:46
Lemmi
Hallo zusammen,
ich möchte ein immer wiederkehrendes Verzeichnis für ein Projekt ausfstellen und möchte sicherstellen, das die Verzeichnisse und Unterverzeichniss "Clean" sind.
Idealer weise starte ich ein Makro und wähle das Projektsverzeichnis aus.Danach werden alle Verzeichnis mit ggf. beinhalteten Unterverzeichnissen durchsucht und die gefundenen Dateien gelöscht.
Gruß
Lemmi

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Löschen aller Dateil im Auswahlverzeichnis
17.11.2012 18:30:51
ransi
Hallo Dirk
Sollen die Unterverzeichnisse auch gelöscht werden oder sollen die bestehen bleiben ?
ransi

AW: Löschen aller Dateil im Auswahlverzeichnis
17.11.2012 18:59:18
Lemmi
Hallo Ransi,
die Verzeichisse also die Ordnernamen sollen alle stehen bleiben.
Es werden nur die Dateien gelöscht!
Gruß
Lemmi

AW: Löschen aller Dateil im Auswahlverzeichnis
18.11.2012 11:15:48
ransi
Hallo Lemmi
Dann teste mal dies:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Public Sub Aufruf()
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Set objShell = CreateObject("Shell.Application")
    With objShell
        Set objFolder = .BrowseForFolder(0&, "Was soll ich machen?", 0)
    End With
    If Not objFolder Is Nothing Then
        Set objItem = objFolder.Self
        Else: Exit Sub
    End If
    Clear_Folders objItem.Path, True 'True wenn die Unterordner geleert werden sollen.
    'Sonst False oder weglassen.
End Sub


Public Sub Clear_Folders(Suchordner, Optional sbfolds As Boolean = False)
    Dim fso As Object
    Dim datei
    Dim objFile
    Dim Unterordner
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set datei = fso.getfolder(Suchordner)
    On Error Resume Next
    Select Case sbfolds
        Case True
            For Each Unterordner In datei.subfolders
                For Each objFile In Unterordner.Files
                    fso.deletefile (objFile)
                Next
                Clear_Folders Unterordner, True
            Next
        Case False
            For Each objFile In fso.getfolder(Suchordner).Files
                fso.deletefile (objFile)
            Next
    End Select
    Set fso = Nothing
    Set datei = Nothing
End Sub


Aber Vorsicht:
Die Dateien sind dann nicht im Papierkorb sondern wirklich weg.
ransi

Anzeige
AW: Löschen aller Dateil im Auswahlverzeichnis
18.11.2012 12:49:36
Lemmi
Hallo Ransi,
alles funktioniert! Vielen Dank!
...
wenn ich so richtig nocheinmal darüber nachdenke, ist eine alternative Lösung die bessere.
Also würde es besser sein wenn man alles in den Papierkorb oder einen Ordner nach Auswahl verschiebt.
Kannst Du das nacheinmal anpassen?
Gruß
Lemmi

AW: Löschen aller Dateil im Auswahlverzeichnis
18.11.2012 13:20:10
ransi
HAllo Lemmi
Die Dateiein in den PApierkorb zu schieben ist nicht einfach.
Einen Ordner zuer stellen in den du die Originaldateien kopierst ist einfacher.
Teste mal:
' **********************************************************************
' Modul: Tabelle1 Typ: Element der Mappe(Sheet, Workbook, ...)
' **********************************************************************

Option Explicit

Private Declare Function MakeSureDirectoryPathExists Lib "imagehlp.dll" ( _
    ByVal DirPath As String) As Long

Const DATENSICHERUNG = "C:\Deine_Datensicherung\" 'Anpassen

Public Sub Aufruf()
    Dim objShell As Object
    Dim objFolder As Object
    Dim objItem As Object
    Dim fso As Object
    Set objShell = CreateObject("Shell.Application")
    With objShell
        Set objFolder = .BrowseForFolder(0&, "Was soll ich machen?", 0)
    End With
    If Not objFolder Is Nothing Then
        Set objItem = objFolder.Self
        '####
        MakeSureDirectoryPathExists DATENSICHERUNG 'Verzeichniß erstellen
        Set fso = CreateObject("Scripting.FileSystemObject")
        fso.copyfolder objItem.Path, DATENSICHERUNG, True 'Den originalordner in die Datensicherung kopieren
        Set fso = Nothing
        '####
        Else: Exit Sub
    End If
    Clear_Folders objItem.Path, True 'True wenn die Unterordner geleert werden sollen.
    'Sonst False oder weglassen.
End Sub



Public Sub Clear_Folders(Suchordner, Optional sbfolds As Boolean = False)
    Dim fso As Object
    Dim datei
    Dim objFile
    Dim Unterordner
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set datei = fso.getfolder(Suchordner)
    On Error Resume Next
    Select Case sbfolds
        Case True
            For Each Unterordner In datei.subfolders
                For Each objFile In Unterordner.Files
                    fso.deletefile (objFile)
                Next
                Clear_Folders Unterordner, True
            Next
        Case False
            For Each objFile In fso.getfolder(Suchordner).Files
                fso.deletefile (objFile)
            Next
    End Select
    Set fso = Nothing
    Set datei = Nothing
End Sub


ransi

Anzeige
AW: Löschen aller Dateil im Auswahlverzeichnis
18.11.2012 15:58:50
Lemmi
Hallo Ransi,
das sieht gut aus!
Wäre es noch möglich die Dateien unter erstellten Namen ohne Ordnerstruktur zu listen.
Dies ist mein Ziel meiner zweiten Anfrage des Forums gewesen.
Ich möchte die Dateien (Bilddateien) für einen Bericht nutzen und benötige Sie gelistet in nur einem Ordner.
D.h. der Ordner C:\Deine_Datensicherung enthält nur die Dateien ohne Ordnernehmen.
Gruß
Lemmi

Beliebteste Forumthreads (12 Monate)

Anzeige

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Anzeige